diff options
| author | Arpit Chakladar <54011232+arpitchakladar@users.noreply.github.com> | 2023-04-04 16:05:48 +0530 |
|---|---|---|
| committer | Arpit Chakladar <54011232+arpitchakladar@users.noreply.github.com> | 2023-04-04 16:05:48 +0530 |
| commit | 7455c1e81dd18a898004c398a16e9f0b6f7c19ae (patch) | |
| tree | 364f25f1f55d95131ffbe484cd5836f711d357c0 /config/webpack.config.js | |
| parent | 5f23f07d04073c06af530332c2d75b48d6c023a0 (diff) | |
| download | banglar-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.js | 32 |
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() ] } |
