diff options
| author | Arpit Chakladar <54011232+arpitchakladar@users.noreply.github.com> | 2023-02-09 20:49:35 +0530 |
|---|---|---|
| committer | Arpit Chakladar <54011232+arpitchakladar@users.noreply.github.com> | 2023-02-09 20:49:35 +0530 |
| commit | 3817d68c29862211afad739131d457864ef86826 (patch) | |
| tree | 393019c7eef36f717a69955dc92b2999a0804a58 /config/webpack.config.js | |
| parent | f18102cdaf55acbf3bae7a7290c9158d21abc7eb (diff) | |
| download | banglar-bhumi-utils-3817d68c29862211afad739131d457864ef86826.tar.gz banglar-bhumi-utils-3817d68c29862211afad739131d457864ef86826.zip | |
Building different scripts for different paths.
Diffstat (limited to 'config/webpack.config.js')
| -rw-r--r-- | config/webpack.config.js | 104 |
1 files changed, 55 insertions, 49 deletions
diff --git a/config/webpack.config.js b/config/webpack.config.js index 90274f6..f4b05c7 100644 --- a/config/webpack.config.js +++ b/config/webpack.config.js @@ -18,58 +18,64 @@ let scriptBuildConfigs = []; let injectedScriptsCount = 0; -const allScripts = { - document_start: { - ...(scripts.before || {}), - ...(scripts.injected || {}), - ...(scripts.injected_and_loaded || {}) - }, - document_end: scripts.rendered, - document_idle: scripts.loaded -}; +const allScripts = {}; + +for (const scriptType in scripts) { + const currentScripts = scripts[scriptType]; + for (const script in currentScripts) { + allScripts[currentScripts[script]] = allScripts[currentScripts[script]] || {}; + allScripts[currentScripts[script]][getScriptRuntimeFromType(scriptType)] = [ + ...(allScripts[currentScripts[script]][getScriptRuntimeFromType(scriptType)] || []), + script + ] + } +} -for (const scriptRuntime in allScripts) { - if (allScripts[scriptRuntime]) { - const importStatements = Object.keys(allScripts[scriptRuntime]).map(script => - `import "${path.resolve(process.env.SOURCE_DIR, "scripts", script)}";` - ).join("\n"); +for (const scriptPath in allScripts) { + for (const scriptRuntime in allScripts[scriptPath]) { + const scripts = allScripts[scriptPath]; + if (scripts[scriptRuntime]) { + const importStatements = scripts[scriptRuntime].map(script => + `import "${path.resolve(process.env.SOURCE_DIR, "scripts", script)}";` + ).join("\n"); - scriptBuildConfigs.push({ - entry: inlineJavascript(importStatements), - name: scriptRuntime, - mode: "production", - output: { - filename: `scripts/${getFileNameHash(Object.values(allScripts[scriptRuntime])[0])}/${scriptRuntime}.js` - }, - resolve: { - extensions: ["", ".ts", ".js"], - alias: { - "@": process.env.SOURCE_DIR - } - }, - module: { - rules: [ - { - test: /\.tsx?$/, - loader: "ts-loader", - options: { - configFile: "config/tsconfig.json" - } - }, - { - test: new RegExp(`^${path.resolve(process.env.SOURCE_DIR, "scripts")}`), - loader: path.resolve(process.env.CONFIG_DIR, "webpack/loaders/scoped-loader") + scriptBuildConfigs.push({ + entry: inlineJavascript(importStatements), + name: `${scriptPath} - ${scriptRuntime}`, + mode: "production", + output: { + filename: `scripts/${getFileNameHash(scriptPath)}/${scriptRuntime}.js` + }, + resolve: { + extensions: ["", ".ts", ".js"], + alias: { + "@": process.env.SOURCE_DIR } - ] - }, - plugins: [ - new SanitizeScriptsImportPlugin() - ].concat( - scriptRuntime === "document_start" - ? [new InjectScriptPlugin()] - : [] - ) - }); + }, + module: { + rules: [ + { + test: /\.tsx?$/, + loader: "ts-loader", + options: { + configFile: "config/tsconfig.json" + } + }, + { + test: new RegExp(`^${path.resolve(process.env.SOURCE_DIR, "scripts")}`), + loader: path.resolve(process.env.CONFIG_DIR, "webpack/loaders/scoped-loader") + } + ] + }, + plugins: [ + new SanitizeScriptsImportPlugin() + ].concat( + scriptRuntime === "document_start" + ? [new InjectScriptPlugin()] + : [] + ) + }); + } } } |
