const webpack = require("webpack");
+const path = require("path");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const nodeExternals = require("webpack-node-externals");
const CopyPlugin = require("copy-webpack-plugin");
const RunNodeWebpackPlugin = require("run-node-webpack-plugin");
-const merge = require("lodash/merge");
+const merge = require("lodash.merge");
const { ServiceWorkerPlugin } = require("service-worker-webpack");
-const TsconfigPathsPlugin = require("tsconfig-paths-webpack-plugin");
+
const banner = `
hash:[contentHash], chunkhash:[chunkhash], name:[name], filebase:[base], query:[query], file:[file]
Source code: https://github.com/LemmyNet/lemmy-ui
hashFunction: "xxhash64",
},
resolve: {
- plugins: [new TsconfigPathsPlugin()],
extensions: [".js", ".jsx", ".ts", ".tsx"],
+ alias: {
+ "@": path.resolve(__dirname, "src/"),
+ "@utils": path.resolve(__dirname, "src/shared/utils/"),
+ },
},
performance: {
hints: false,
entry: "./src/client/index.tsx",
output: {
filename: "js/client.js",
+ publicPath: "/static/",
},
plugins: [
...base.plugins,
"/": "/static/",
},
cacheId: "lemmy",
- include: [/(assets|styles)\/.+\..+|client\.js$/g],
+ include: [/(assets|styles|js)\/.+\..+$/g],
inlineWorkboxRuntime: true,
runtimeCaching: [
{
],
});
- if (mode === "development") {
- // config.cache = {
- // type: "filesystem",
- // name: "client",
- // };
+ if (mode === "none") {
+ const BundleAnalyzerPlugin =
+ require("webpack-bundle-analyzer").BundleAnalyzerPlugin;
+ config.plugins.push(new BundleAnalyzerPlugin());
}
return config;