Web: Doceditor: modified webpack config for client

This commit is contained in:
Artem Tarasov 2022-07-15 18:50:57 +03:00
parent 8172c832bf
commit 4d9422ef0d
3 changed files with 41 additions and 63 deletions

View File

@ -1,17 +0,0 @@
const { merge } = require("webpack-merge");
const TerserPlugin = require("terser-webpack-plugin");
const baseClientConfig = require("../webpack.base.client");
const clientConfig = {
mode: "production",
entry: { client: "./src/client/index.js" },
devtool: false,
optimization: {
splitChunks: { chunks: "all" },
minimize: true,
minimizer: [new TerserPlugin()],
},
};
module.exports = merge(baseClientConfig, clientConfig);

View File

@ -1,6 +1,5 @@
const { merge } = require("webpack-merge");
const path = require("path");
const baseConfig = require("../webpack.base.js");
const ModuleFederationPlugin = require("webpack").container
.ModuleFederationPlugin;
const HotModuleReplacementPlugin = require("webpack")
@ -8,13 +7,15 @@ const HotModuleReplacementPlugin = require("webpack")
const DefinePlugin = require("webpack").DefinePlugin;
const { WebpackManifestPlugin } = require("webpack-manifest-plugin");
const { CleanWebpackPlugin } = require("clean-webpack-plugin");
const ExternalTemplateRemotesPlugin = require("external-remotes-plugin");
const CopyPlugin = require("copy-webpack-plugin");
const TerserPlugin = require("terser-webpack-plugin");
const combineUrl = require("@appserver/common/utils/combineUrl");
const minifyJson = require("@appserver/common/utils/minifyJson");
const AppServerConfig = require("@appserver/common/constants/AppServerConfig");
const { proxyURL } = AppServerConfig;
const sharedDeps = require("@appserver/common/constants/sharedDependencies");
const ExternalTemplateRemotesPlugin = require("external-remotes-plugin");
const CopyPlugin = require("copy-webpack-plugin");
const baseConfig = require("./webpack.base.js");
for (let dep in sharedDeps) {
sharedDeps[dep].eager = true;
@ -29,17 +30,17 @@ const clientConfig = {
devtool: "inline-cheap-module-source-map",
output: {
path: path.resolve(process.cwd(), "dist"),
path: path.resolve(process.cwd(), "dist/client"),
filename: "static/js/[name].[contenthash].bundle.js",
publicPath: "/products/files/doceditor/",
chunkFilename: "static/js/[id].[contenthash].js",
},
resolve: {
...baseConfig.resolve,
},
module: {
...baseConfig.module,
performance: {
maxEntrypointSize: 512000,
maxAssetSize: 512000,
},
plugins: [
new CleanWebpackPlugin(),
new ModuleFederationPlugin({
@ -72,29 +73,34 @@ const clientConfig = {
],
}),
new WebpackManifestPlugin(),
new DefinePlugin({
IS_DEVELOPMENT: process.env.NODE_ENV === "development",
PORT: process.env.PORT,
}),
new HotModuleReplacementPlugin(),
],
optimization: {
runtimeChunk: "single", // creates a runtime file to be shared for all generated chunks.
splitChunks: {
chunks: "all", // This indicates which chunks will be selected for optimization.
automaticNameDelimiter: "-",
cacheGroups: {
vendor: {
// to convert long vendor generated large name into vendor.js
test: /[\\/]node_modules[\\/]/,
name: "vendor",
chunks: "all",
},
},
},
minimize: false,
minimizer: [],
},
};
module.exports = merge(baseConfig, clientConfig);
module.exports = (env, argv) => {
if (argv.mode === "production") {
clientConfig.mode = "production";
clientConfig.optimization = {
// splitChunks: { chunks: "all" },
minimize: !env.minimize,
minimizer: [new TerserPlugin()],
};
clientConfig.plugins = [
...clientConfig.plugins,
new DefinePlugin({
IS_DEVELOPMENT: false,
}),
];
} else {
clientConfig.devtool = "cheap-module-source-map";
clientConfig.plugins = [
...clientConfig.plugins,
new DefinePlugin({
IS_DEVELOPMENT: true,
PORT: process.env.PORT || 5013,
}),
];
}
return merge(baseConfig, clientConfig);
};

View File

@ -12,14 +12,9 @@ const serverConfig = {
entry: {
server: "./src/server/index.js",
},
resolve: {
...baseConfig.resolve,
},
module: {
...baseConfig.module,
},
output: {
path: path.resolve(process.cwd(), "dist/server"),
path: path.resolve(process.cwd(), "dist/"),
filename: "[name].js",
libraryTarget: "commonjs2",
chunkFilename: "chunks/[name].js",
@ -29,19 +24,13 @@ const serverConfig = {
module.exports = (env, argv) => {
if (argv.mode === "production") {
baseConfig.mode = "production";
baseConfig.optimization = {
splitChunks: { chunks: "all" },
minimize: !env.minimize,
minimizer: [new TerserPlugin()],
};
baseConfig.plugins = [
serverConfig.plugins = [
new DefinePlugin({
IS_DEVELOPMENT: false,
}),
];
} else {
baseConfig.plugins = [
serverConfig.plugins = [
new DefinePlugin({
IS_DEVELOPMENT: true,
}),