npm 的模块升级或更新以后导致不兼容了怎么办?

2017-11-09 14:41:11 +08:00
 firhome
我现在有一个项目,之前引用了几个第三方模块,结果同事把 package.json 拿过去自己 npm install 的时候发现项目不能使用了。

检查之后才发现是几个模块更新了导致不兼容了。

现在该如何解决呢? 一个一个模块去指定版本改 package.json 太麻烦了。 有没有什么快捷的方式?
5061 次点击
所在节点    Node.js
8 条回复
Mutoo
2017-11-09 15:13:54 +08:00
1 ) npm shrinkwrap
2 )使用最新版的 npm
3 )使用 yarn

会生成相应的 lockfile 锁定当前使用的版本。
WispZhan
2017-11-09 15:20:13 +08:00
package.json 里没有指明具体版本号的升级策略? ^x.x.x,~x.x.x 或者直接写死某个具体版本号 x.x.x。

对于这种 升级了就不兼容的第三方库,一般升级策略比较保守,不应该直接用通配代替具体版本。
est
2017-11-09 15:31:12 +08:00
重写。工作量来了。
duan602728596
2017-11-09 15:58:17 +08:00
哪些模块更新了?
tongjun
2017-11-09 18:58:18 +08:00
不要升级
npm shrinkwrap 不好用,新版的 npm 会生成 package-lock.json 来锁定版本号
firhome
2017-11-10 09:17:12 +08:00
@tongjun 那我现在直接升级 npm 就可以了吗? 现在就我本地机器上的 node_modules 里的模块是正确的。那我升级后怎么把本地的版本导出来呢?
firhome
2017-11-10 09:17:39 +08:00
@duan602728596 一些依赖 vue 的第三方模块,因为 vue 的升级,导致这些第三方模块一些写法报错
firhome
2017-11-10 09:18:18 +08:00
@WispZhan 是哎,当初也只是练练手做的一个配置,没想到直接在项目中用了。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/404957

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX