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

时间:2018-10-22 10:35:29

标签: javascript node.js webpack

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

我需要在CDN中保留之前的捆绑软件,因此我使用构建哈希值来使捆绑软件唯一。

但是我发现[hash]中的publicPath中的chunkhashfilename导致了错误?

我知道删除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])

1 个答案:

答案 0 :(得分:0)

您误解了publicPath概念。公用路径是webpack从文件所在的本地域的根开始请求获取其他必要块的位置。例如,如果它是/,则webpack将请求${CURRENT_DOMAIN}/dj834j9384j123.js。因此publicPath必须是一种路径。

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