Эх сурвалжийг харах

Merge pull request #15514 from overleaf/jpa-single-webpack-runtime

[web] enable webpack option runtimeChunk=single in dev-env

GitOrigin-RevId: 905b362496fc5df896632db920c91aee75c30b46
Miguel Serrano 2 жил өмнө
parent
commit
1f56441184

+ 9 - 1
services/web/app/src/infrastructure/ExpressLocals.js

@@ -171,8 +171,16 @@ module.exports = function (webRouter, privateApiRouter, publicApiRouter) {
       return staticFilesBase + (webpackManifest[jsFile] || '/' + jsFile)
     }
 
+    let runtimeEmitted = false
+    const runtimeChunk = webpackManifest['runtime.js']
     res.locals.entrypointScripts = function (entrypoint) {
-      const chunks = getWebpackAssets(entrypoint, 'js')
+      // Each "entrypoint" contains the runtime chunk as imports.
+      // Loading the entrypoint twice results in broken execution.
+      let chunks = getWebpackAssets(entrypoint, 'js')
+      if (runtimeEmitted) {
+        chunks = chunks.filter(chunk => chunk !== runtimeChunk)
+      }
+      runtimeEmitted = true
       return chunks.map(chunk => staticFilesBase + chunk)
     }
 

+ 3 - 1
services/web/webpack.config.dev.js

@@ -93,6 +93,8 @@ module.exports = merge(base, {
   },
 
   optimization: {
-    runtimeChunk: process.env.WEBPACK_RUNTIME_CHUNK || false,
+    runtimeChunk: {
+      name: 'runtime',
+    },
   },
 })