如何为每个入口点设置__webpack_public_path__

时间:2019-06-15 15:38:24

标签: webpack

我需要在运行时调整webpack的公共路径,即possible with __webpack_public_path__ according to the documentation。我使用next.js,它每页生成一个入口点+从页面入口点调用的入口点_document.js_app.js_error.js。由于应该为每个入口点设置__webpack_public_path__,因此我使用entrypoint array functionality在入口点引用的每个文件之前插入一个简短的public-path.js文件。该文件仅设置__webpack_public_path__。您可以see a short gist of this here

到目前为止,一切都很好。但是它没有按预期工作。我调试了代码,发现了这些东西:

  1. 当我的应用运行并请求页面时,webpack会从页面块中加载模块(在此位置,它还会正确加载public-path.js并设置__webpack_public_path__),然后继续加载所需的模块从_document.js开始,然后从_app.js开始。

  2. 虽然在代码从页面块执行模块的过程中正确设置了__webpack_public_path__,但只要继续从_document.js加载模块,webpack块初始化代码就会设置{{ 1}}(或者在构建代码中为__webpack_public_path__)为空字符串__webpack_require__.p

  3. 尽管""块也尝试加载_document.js模块,但由于该模块现在已缓存在{{1 }}缓存,因此不再执行(使用public-path.js)。

我被卡住了,我不确定这是错误还是限制。无论如何,对此有何建议?

0 个答案:

没有答案