我的 webpack 输出:
output: {
publicPath: path.join(basename, '/assets/'),
path: `${__dirname}/built/core/assets/`,
filename: '[name].[chunkhash].js',
},
index.html 模板:
<% for (var chunk in htmlWebpackPlugin.files.chunks) { %>
<script charset="utf-8" src="<%= htmlWebpackPlugin.files.chunks[chunk].entry %>"></script>
<% } %>
现在的问题是当 publicPath 设置为 时path.join(basename, '/assets')
, index.html 被解析为:
<script charset="utf-8" src="\assets/bundle.d121bf175aece5f14af6.js"></script>
没关系,但是因为我没有在 bundle.[hash].js 文件中的公共路径中添加斜杠,块
script.src = __webpack_require__.p + "" + chunkId + "." + {"0":"24692a7f9ff51c72880c...
...
__webpack_require__.p = "\\assets";
被解析为assets[id].[hash].js
没有斜线并且没有找到它们。但是,如果我在 publicPath( path.join(basename, '/assets/')
) 中添加尾随逗号,那么 index.html 将被解析为
<script charset="utf-8" src="\assets\/bundle.d121bf175aece5f14af6.js"></script>
然后找不到 bundle.[hash].js 文件。
我在配置中缺少什么?