next.js 是 React 的一个很常用的 ssr(server-side-render)框架, 它内置了很多 webpack 的插件和配置,基本上可以 很简洁的去构建同构项目。
虽然很简洁,但是很多情况下我们还是想自己去定义一些配置,比方说打包的路径之类的。这里遇到了一个坑: 在打包并 导出静态资源时,发现有一个 common 的 main.js 文件一直带着一个 hash, 由于我们的项目 是容器去自己打包,因为配置文件的不同,所以打包后的 chunk 和本地的一定不同,但我们的静态资源还要上传到 cdn,所以这里就有了问题,想把 hash 去掉,看了半天 issue 没找到结果,最后读了一下源码,找到了解决办法:
1 | webpack: (config, { isServer, buildId }) => { |
在 next.config.js 中的 webpack 方法里这样写。这里注意:如果你是用 config.plugins.push()的话,是不会生效的,原来的依旧会存在,必须找到对应的内置插件的 name 去替换