Webpack DllPlugin 中是否有任何“publicPath”选项或类似选项

Is there any "publicPath" option or similar in Webpack DllPlugin?

本文关键字:选项 publicPath DllPlugin 是否 任何 Webpack      更新时间:2023-09-26

我使用的是使用出色 DllPlugin 的 mxstbr/react-样板,但由于应用程序由 nginx 在 /admin 下提供服务,因此在尝试从根 url 获取reactBoilerplateDeps.dll.js文件时失败并显示 404(它命中http://localhost/reactBoilerplateDeps.dll.js而不是 http://localhost/admin/reactBoilerplateDeps.dll.js(。

是否有任何与 Webpack 在 DllPlugin 上的 publicPath 选项类似的概念,或者有任何告诉 DllPlugin 在路径前缀下使用的方法?

我添加了将dll脚本附加到正文的前缀:

dllNames.forEach((dllName) => body.append(`<script data-dll='true' src='/${dllName}.dll.js'></script>`)); dllNames.forEach((dllName) => body.append(`<script data-dll='true' src='/${somePrefix}${dllName}.dll.js'></script>`));

此外,根据代理请求的方式,应确保开发服务器正确处理文件名。因此,如果您还将前缀传递给开发服务器,则应将其从此处的请求路径中删除。

对于 webpack.dev.babel.js 格式,请单击此处

我正在为此苦苦挣扎,但尝试了以下方法:

1(去你的webpack.dev.babel.js

2(转到您添加此内容的行:

dllNames.forEach((dllName( => body.append( <script data-dll='true' src='/${dllName}.dll.js'></script> ((;

3( 删除"反斜杠"(/(,因为安装后node_modules文件是公开可用的。 因此,删除后,它将是:

dllNames.forEach((dllName( => body.append( <script data-dll='true' src='${dllName}.dll.js'></script> ((;

4(运行npm运行构建:dll

5( NPM 启动

我希望,它有所帮助。