Following [discussion on Discord](https://discord.com/channels/895426029194207262/910966759165657161/1227299497546223707), this enables ESLint errors showing up during dev within Webpack, and also enforces that all issues (both warnings and errors) will cause builds to fail during CI. Other changes: - Updates some dependencies (primarily to versions that are type-checked)
45 lines
959 B
JavaScript
45 lines
959 B
JavaScript
// @ts-check
|
|
|
|
const ESLintPlugin = require("eslint-webpack-plugin");
|
|
const TerserPlugin = require("terser-webpack-plugin");
|
|
const { merge } = require("webpack-merge");
|
|
|
|
const baseConfigs = require("./webpack.config.js");
|
|
const [main, vnc] = baseConfigs;
|
|
|
|
module.exports = [
|
|
merge(main, {
|
|
mode: "production",
|
|
devtool: "source-map",
|
|
|
|
// TODO figure out minifying lit templates
|
|
optimization: {
|
|
runtimeChunk: "single",
|
|
splitChunks: {
|
|
// Split both async and non-async chunks (only async by default)
|
|
chunks: "all",
|
|
},
|
|
minimize: true,
|
|
minimizer: [
|
|
new TerserPlugin({
|
|
terserOptions: {
|
|
compress: {
|
|
drop_console: ["log", "info"],
|
|
},
|
|
},
|
|
}),
|
|
],
|
|
},
|
|
plugins: [
|
|
new ESLintPlugin({
|
|
failOnWarning: true,
|
|
extensions: ["ts", "js"],
|
|
}),
|
|
],
|
|
}),
|
|
{
|
|
...vnc,
|
|
mode: "production",
|
|
},
|
|
];
|