最近又遇到了一个前端工程node版本升级的后续问题。
一个同事在拉取了最新的master分支,安装依赖后,运行项目时有一个文件缺失,无法编译成功。
定位问题:
我本地重新拉取了master分支,安装依赖,运行项目可以正常启动,排除项目文件问题。
在同事的电脑上重新开了一个文件夹,拉取master分支,执行安装(npm install),发现第一行跳了提醒
(This version of npm is compatible with lockfileVersion@1, but package-lock.json was generated for lockfileVersion@2. I'll try to do my best with it!)
并更新了项目目录下的package-lock.json文件。新的package-lock.json文件文件内容改变非常多,结构也有变更。再次运行项目,依然无法正常编译。
分析原因:
猜想是package-lock.json未生效,是同事电脑的本地环境无法正确读取package-lock.json的依赖信息。
解决思路及尝试:
1、清除npm缓存
npm cache clean -f
无法解决问题。
2、指定lockfileVersion为 version2。
(GPT给了下面这行指令,实测无效)
npm_config_lockfile_version=2 npm install
3、node16版本已经确定,在此基础上尝试更换node16的各个子版本。
尝试更换了子版本(16.10.x 16.18.x ),依然无效。
4、更新npm版本 (正确解法)
(注意是升级npm版本,而不是node版本)
执行npm -v
对比了一下,同事电脑上的npm版本是6.14.13,而我电脑上的npm版本是8.19.2,问题就出在这里了。
执行 npm install -g npm@8.19.2
再次安装依赖,正常安装,正常启动项目。
完结!
同步更新到自己的语雀
https://www.yuque.com/dirackeeko/blog/uc8v6gzlff7mioy2
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。