Client: Added top banner for minimazed js files

This commit is contained in:
Alexey Safronov 2024-03-21 18:08:20 +04:00
parent 93ab155615
commit 6d183ab648

View File

@ -32,6 +32,7 @@ const ModuleFederationPlugin =
const DefinePlugin = require("webpack").DefinePlugin; const DefinePlugin = require("webpack").DefinePlugin;
const BundleAnalyzerPlugin = const BundleAnalyzerPlugin =
require("webpack-bundle-analyzer").BundleAnalyzerPlugin; require("webpack-bundle-analyzer").BundleAnalyzerPlugin;
const BannerPlugin = require("webpack").BannerPlugin;
const ExternalTemplateRemotesPlugin = require("external-remotes-plugin"); const ExternalTemplateRemotesPlugin = require("external-remotes-plugin");
const TerserPlugin = require("terser-webpack-plugin"); const TerserPlugin = require("terser-webpack-plugin");
@ -290,6 +291,18 @@ const config = {
], ],
}; };
const getBuildDate = () => {
const timeElapsed = Date.now();
const today = new Date(timeElapsed);
return JSON.stringify(today.toISOString().split(".")[0] + "Z");
};
const getBuildYear = () => {
const timeElapsed = Date.now();
const today = new Date(timeElapsed);
return today.getFullYear();
};
module.exports = (env, argv) => { module.exports = (env, argv) => {
config.devtool = "source-map"; config.devtool = "source-map";
@ -298,7 +311,16 @@ module.exports = (env, argv) => {
config.optimization = { config.optimization = {
splitChunks: { chunks: "all" }, splitChunks: { chunks: "all" },
minimize: !env.minimize, minimize: !env.minimize,
minimizer: [new TerserPlugin()], minimizer: [
new TerserPlugin({
terserOptions: {
format: {
comments: /\*\s*\(c\)\s+Copyright\s+Ascensio\s+System\s+SIA/i,
},
},
extractComments: false,
}),
],
}; };
} }
@ -384,13 +406,11 @@ module.exports = (env, argv) => {
config.plugins.push(new HtmlWebpackPlugin(htmlTemplate)); config.plugins.push(new HtmlWebpackPlugin(htmlTemplate));
const BUILD_AT = DefinePlugin.runtimeValue(getBuildDate, true);
const defines = { const defines = {
VERSION: JSON.stringify(version), VERSION: JSON.stringify(version),
BUILD_AT: DefinePlugin.runtimeValue(function () { BUILD_AT,
const timeElapsed = Date.now();
const today = new Date(timeElapsed);
return JSON.stringify(today.toISOString().split(".")[0] + "Z");
}, true),
IS_PERSONAL: env.personal || false, IS_PERSONAL: env.personal || false,
}; };
@ -400,5 +420,18 @@ module.exports = (env, argv) => {
config.plugins.push(new BundleAnalyzerPlugin()); config.plugins.push(new BundleAnalyzerPlugin());
} }
config.plugins.push(
new BannerPlugin({
raw: true,
banner: `/*
* (c) Copyright Ascensio System SIA 2009-${getBuildYear()}. All rights reserved
*
* https://www.onlyoffice.com/
*
* Version: ${version} (build: ${getBuildDate()})
*/`,
}),
);
return config; return config;
}; };