【问题标题】:Is there any "publicPath" option or similar in Webpack DllPlugin?Webpack DllPlugin 中是否有任何“publicPath”选项或类似选项?
【发布时间】:2016-11-10 14:38:32
【问题描述】:
我正在使用mxstbr/react-boilerplate,它使用了伟大的DllPlugin,但由于应用程序由/admin 下的nginx 提供服务,因此在尝试从根URL 获取reactBoilerplateDeps.dll.js 文件时它会失败并返回404(它点击http://localhost/reactBoilerplateDeps.dll.js 而不是http://localhost/admin/reactBoilerplateDeps.dll.js)。
是否有任何类似于 Webpack 在 DllPlugin 上的 publicPath 选项的概念,或者以任何方式告诉 DllPlugin 在路径前缀下使用?
【问题讨论】:
标签:
javascript
webpack
react-boilerplate
dllplugin
【解决方案1】:
我添加了前缀where the dll scripts are appended to the body:
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>`));
此外,根据您代理请求的方式,您应该确保开发服务器正确处理文件名。因此,如果您还将前缀传递给开发服务器,则应将其从请求路径 here 中删除。
【解决方案2】:
webpack.dev.babel.js 格式,点击here
我也在苦苦挣扎,但尝试了以下方法:
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 run build:dll
5) npm 启动
希望对你有帮助。