aboutsummaryrefslogtreecommitdiffstats
path: root/config/webpack.config.js
diff options
context:
space:
mode:
authorArpit Chakladar <54011232+arpitchakladar@users.noreply.github.com>2023-04-04 16:05:48 +0530
committerArpit Chakladar <54011232+arpitchakladar@users.noreply.github.com>2023-04-04 16:05:48 +0530
commit7455c1e81dd18a898004c398a16e9f0b6f7c19ae (patch)
tree364f25f1f55d95131ffbe484cd5836f711d357c0 /config/webpack.config.js
parent5f23f07d04073c06af530332c2d75b48d6c023a0 (diff)
downloadbanglar-bhumi-utils-7455c1e81dd18a898004c398a16e9f0b6f7c19ae.tar.gz
banglar-bhumi-utils-7455c1e81dd18a898004c398a16e9f0b6f7c19ae.zip
Keeping track of the number of times that a shared module has been used and dertermining if it is to be included along with the other scripts.
Diffstat (limited to 'config/webpack.config.js')
-rw-r--r--config/webpack.config.js32
1 files changed, 22 insertions, 10 deletions
diff --git a/config/webpack.config.js b/config/webpack.config.js
index 22544b9..98315b0 100644
--- a/config/webpack.config.js
+++ b/config/webpack.config.js
@@ -22,6 +22,12 @@ const scripts = webpackRequire("utils/scripts");
const sharedModules = webpackRequire("utils/shared-modules");
+const sharedModulesImportedCount = {};
+
+for (const sharedModule of sharedModules) {
+ sharedModulesImportedCount[sharedModule] = 0;
+}
+
const uninjectedScriptEntries = {};
const injectedAfterScriptEntries = {};
const injectedBeforeScriptEntries = {};
@@ -94,20 +100,25 @@ const commonOptions = {
}
};
-const ecmaScriptModuleOptions = {
- experiments: {
- outputModule: true
- }
-};
-
const sharedModuleOptions = {
externals: sharedModuleExternals,
- externalsType: "var"
+ externalsType: "var",
+ module: {
+ rules: [
+ {
+ test: /\.(j|t)s$/,
+ loader: path.resolve(CONFIG_DIR, "webpack/loader/count-imports-loader.js"),
+ options: {
+ sharedModulesImportedCount
+ },
+ enforce: "post"
+ }
+ ]
+ },
};
const uninjectedScriptConfiguration = merge(
commonOptions,
- ecmaScriptModuleOptions,
sharedModuleOptions,
{
entry: uninjectedScriptEntries,
@@ -144,12 +155,13 @@ const injectedBeforeScriptConfiguration = merge(
const sharedModulesConfiguration = merge(
commonOptions,
- ecmaScriptModuleOptions,
sharedModuleOptions,
{
entry: sharedModuleEntries,
plugins: [
- new CreateManifestPlugin(),
+ new CreateManifestPlugin({
+ sharedModulesImportedCount
+ }),
new CreateRulesPlugin()
]
}