diff options
| author | Arpit Chakladar <54011232+arpitchakladar@users.noreply.github.com> | 2023-04-08 11:46:35 +0530 |
|---|---|---|
| committer | Arpit Chakladar <54011232+arpitchakladar@users.noreply.github.com> | 2023-04-08 11:46:35 +0530 |
| commit | ccf73485cfba952451144d7841cbb3fac8368867 (patch) | |
| tree | 642b374684afa6ad4446af556fd98f118609d5c7 /config/webpack.config.js | |
| parent | c59c25bff510166011471b136d12c4217f844eb9 (diff) | |
| download | banglar-bhumi-utils-ccf73485cfba952451144d7841cbb3fac8368867.tar.gz banglar-bhumi-utils-ccf73485cfba952451144d7841cbb3fac8368867.zip | |
Injecting shared modules for the injected scripts, further reusing code.
Diffstat (limited to 'config/webpack.config.js')
| -rw-r--r-- | config/webpack.config.js | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/config/webpack.config.js b/config/webpack.config.js index 78f4060..31bbb8d 100644 --- a/config/webpack.config.js +++ b/config/webpack.config.js @@ -14,13 +14,13 @@ global.webpackRequire = modulePath => require(path.resolve(CONFIG_DIR, "webpack" const CreateManifestPlugin = webpackRequire("plugins/create-manifest-webpack-plugin"); const CreateRulesPlugin = webpackRequire("plugins/create-rules-webpack-plugin"); const InjectScriptPlugin = webpackRequire("plugins/inject-script-webpack-plugin"); +const CreateInjectedSharedModulesPlugin = webpackRequire("plugins/create-injected-shared-modules-webpack-plugin"); const { inlineJavascript } = webpackRequire("utils/inline-javascript"); const { getScriptRuntimeFromType } = webpackRequire("utils/script-runtime"); const { getFileNameHash } = webpackRequire("utils/filename-hash"); const scripts = webpackRequire("utils/scripts"); - const sharedModules = webpackRequire("utils/shared-modules"); const sharedModulesImportedCount = {}; @@ -29,6 +29,12 @@ for (const sharedModule of sharedModules) { sharedModulesImportedCount[sharedModule] = 0; } +const injectedSharedModulesImportedCount = {}; + +for (const sharedModule of sharedModules) { + injectedSharedModulesImportedCount[sharedModule] = 0; +} + const uninjectedScriptEntries = {}; const injectedAfterScriptEntries = {}; const injectedBeforeScriptEntries = {}; @@ -125,6 +131,23 @@ const sharedModuleOptions = { } }; +const injectedModulesOptions = { + externals: sharedModuleExternals, + externalsType: "var", + module: { + rules: [ + { + test: /banglar-bhumi-utils\/src\/.*.(^.?|\.[^d]|[^.]d|[^.][^d])\.(t|j)s$/, + loader: path.resolve(CONFIG_DIR, "webpack/loader/count-imports-loader.js"), + options: { + sharedModulesImportedCount: injectedSharedModulesImportedCount + }, + enforce: "post" + } + ] + } +}; + const uninjectedScriptConfiguration = merge( commonOptions, sharedModuleOptions, @@ -135,6 +158,7 @@ const uninjectedScriptConfiguration = merge( const injectedAfterScriptConfiguration = merge( commonOptions, + injectedModulesOptions, { entry: injectedAfterScriptEntries, plugins: [ @@ -145,6 +169,7 @@ const injectedAfterScriptConfiguration = merge( const injectedBeforeScriptConfiguration = merge( commonOptions, + injectedModulesOptions, { entry: injectedBeforeScriptEntries, plugins: [ @@ -167,11 +192,16 @@ const sharedModulesConfiguration = merge( to: "./" }] }), + new CreateInjectedSharedModulesPlugin({ + injectedSharedModulesImportedCount, + sortedSharedModules + }), + new CreateRulesPlugin(), new CreateManifestPlugin({ sharedModulesImportedCount, + injectedSharedModulesImportedCount, sortedSharedModules - }), - new CreateRulesPlugin() + }) ], module: { rules: [ |
