webpack 在 publicPath 中设置哈希会导致错误,当在文件名中包含块哈希时?



当 webpack 打包项目时,我需要将 dist 文件上传到 cdn,然后提高访问速度。

我需要将 before bundle 保留在 cdn 中,所以我使用构建哈希来唯一捆绑包。

但是我发现设置[hash]publicPathfilenamechunkhash时会导致错误?

我知道删除filename中的chunkhash可以解决问题,但我仍然想知道为什么?

这是我的小 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]/"
}
};

错误信息:

块主 [条目] 中的错误 [块哈希].js 不能在"[chunkhash].js"中使用 [chunkhash] 或 [contenthash](改用 [hash]

(

你误解了publicPath的概念。公共路径是 webpack 必须从文件所在的本地域的根目录请求以获取必要的其他块的地方。例如,如果是/,webpack 将请求${CURRENT_DOMAIN}/dj834j9384j123.js。所以 publicPath 必须是一种路径。

而且,如果您使用的是 webpack-dev-server 或类似服务器,则不应使用 chunkhash,而只能使用哈希。

相关内容

最新更新