Next.js开发环境如何禁用缓存?生产构建能否配置类似--no-source-map参数?
开发阶段禁用Next.js缓存实现方案
- 方案1:启动前自动清理缓存目录(推荐,无配置冲突风险)
Next.js的开发缓存全部存放在项目根目录的.next文件夹下,可直接修改package.json中的启动命令,每次启动next dev前自动删除该目录:
跨平台通用方案(需要先安装rimraf依赖:npm i rimraf -D):
单平台可直接用系统原生删除命令:{ "scripts": { "dev": "rimraf .next && next dev" } }- Mac/Linux:
"dev": "rm -rf .next && next dev" - Windows:
"dev": "rd /s /q .next && next dev"
- Mac/Linux:
- 方案2:修改webpackDevMiddleware配置
你提到的修改webpackDevMiddleware的方式完全可行,不会和Next.js的自身规则冲突,也不会违反最佳实践,仅需在next.config.js中添加如下配置即可关闭webpack层面的内存缓存:
注意:该方案会导致开发服务启动速度、热更新速度明显变慢,仅建议遇到缓存异常问题时临时开启module.exports = { webpackDevMiddleware: (config) => { config.cache = false return config } }
生产构建禁用sourcemap配置
Next.js原生支持直接配置关闭生产环境客户端sourcemap,无需额外修改webpack底层配置,只需在next.config.js中添加productionBrowserSourceMaps字段即可:
module.exports = { // 设为false即可完全禁用生产环境客户端代码的sourcemap输出,等价于--no-source-map效果 productionBrowserSourceMaps: false }
如果需要同时禁用服务端构建的sourcemap,可补充webpack配置:
module.exports = { productionBrowserSourceMaps: false, webpack: (config, { dev, isServer }) => { if (!dev) { config.devtool = false } return config } }
内容的提问来源于stack exchange,提问作者Joel Bonet
相关产品推荐
相关产品推荐

