Next.js中在node_modules内添加console.log不生效该如何解决?
解决Next.js 12.1修改node_modules代码不生效的问题
- 清除Next.js缓存
Next.js开发模式下会缓存已编译的模块,直接修改node_modules里的代码不会触发重新编译。执行命令清除缓存:
rm -rf .next # 或者用Next自带的无缓存启动命令 next dev -p 3030 --no-cache
重启开发服务后,修改的代码会被重新编译。
- 针对目标模块禁用预构建
Next.js 12+会自动预构建node_modules依赖来提速,要是你改的模块被预构建了,修改就不会生效。在next.config.js里添加配置:
/** @type {import('next').NextConfig} */ const nextConfig = { // 把你修改的模块名填进数组 transpilePackages: ['目标模块名'], } module.exports = nextConfig
改完配置重启服务,模块会被实时编译,你的修改就能生效。
- 临时替换模块文件
如果上面的方法都没效果,把修改后的模块文件复制到项目目录里,然后在package.json里指定使用本地版本:
{ "resolutions": { "目标模块名": "file:./本地存放修改后模块的路径" } }
执行yarn install或者npm install,项目就会用你本地修改的版本。
- 务必重启开发服务
每次修改node_modules里的代码后,一定要完全关掉当前的next dev进程,再重新启动,避免缓存残留导致修改不生效。
内容的提问来源于stack exchange,提问作者Robsonsjre
相关产品推荐
相关产品推荐

