我需要在运行时调整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。
到目前为止,一切都很好。但是它没有按预期工作。我调试了代码,发现了这些东西:
当我的应用运行并请求页面时,webpack会从页面块中加载模块(在此位置,它还会正确加载public-path.js
并设置__webpack_public_path__
),然后继续加载所需的模块从_document.js
开始,然后从_app.js
开始。
虽然在代码从页面块执行模块的过程中正确设置了__webpack_public_path__
,但只要继续从_document.js
加载模块,webpack块初始化代码就会设置{{ 1}}(或者在构建代码中为__webpack_public_path__
)为空字符串__webpack_require__.p
。
尽管""
块也尝试加载_document.js
模块,但由于该模块现在已缓存在{{1 }}缓存,因此不再执行(使用public-path.js
)。
我被卡住了,我不确定这是错误还是限制。无论如何,对此有何建议?