当webpack打包项目时,我需要将dist文件上传到cdn,然后提高访问速度。
我需要在CDN中保留之前的捆绑软件,因此我使用构建哈希值来使捆绑软件唯一。
但是我发现[hash]
中的publicPath
中的chunkhash
集filename
导致了错误?
我知道删除chunkhash
中的filename
可以解决问题,但是我仍然想知道为什么?
这是我的小型Webpack配置:
const path = require("path");
module.exports = {
entry: "./src/index.js",
output: {
path: path.resolve(__dirname, "./dist"),
filename: "[chunkhash].js",
publicPath: "https://my.cdn/[hash]/"
}
};
错误信息:
chunk main [entry]中的错误 [chunkhash] .js 不能在[chunkhash] .js中使用[chunkhash]或[contenthash]作为块(改为使用[hash])
答案 0 :(得分:0)
您误解了publicPath
概念。公用路径是webpack从文件所在的本地域的根开始请求获取其他必要块的位置。例如,如果它是/
,则webpack将请求${CURRENT_DOMAIN}/dj834j9384j123.js
。因此publicPath必须是一种路径。
而且,如果您使用的是webpack-dev-server或类似服务器,则不应使用chunkhash,而应仅使用哈希。