Customizing default CommonsChunkPlugin in next.config.js


本文总阅读量

next.js 是 React 的一个很常用的 ssr(server-side-render)框架, 它内置了很多 webpack 的插件和配置,基本上可以  很简洁的去构建同构项目。

虽然很简洁,但是很多情况下我们还是想自己去定义一些配置,比方说打包的路径之类的。这里遇到了一个坑: 在打包并  导出静态资源时,发现有一个 common 的 main.js 文件一直带着一个 hash, 由于我们的项目  是容器去自己打包,因为配置文件的不同,所以打包后的 chunk 和本地的一定不同,但我们的静态资源还要上传到 cdn,所以这里就有了问题,想把 hash 去掉,看了半天 issue 没找到结果,最后读了一下源码,找到了解决办法:

1
2
3
4
5
6
7
8
9
10
webpack: (config, { isServer, buildId }) => {
if (!isServer) {
config.plugins = config.plugins.map(plugin => {
if (plugin.constructor.name === 'CommonsChunkPlugin') {
plugin.filenameTemplate = 'static/commons/main.js'
}
return plugin
})
}
}

在 next.config.js 中的 webpack 方法里这样写。这里注意:如果你是用 config.plugins.push()的话,是不会生效的,原来的依旧会存在,必须找到对应的内置插件的 name 去替换

目录

Proudly powered by Hexo and Theme by Lap
本站访客数人次
©2016 - 2018 BosenY