我现在有一个项目,之前引用了几个第三方模块,结果同事把 package.json 拿过去自己 npm install 的时候发现项目不能使用了。
检查之后才发现是几个模块更新了导致不兼容了。
现在该如何解决呢? 一个一个模块去指定版本改 package.json 太麻烦了。 有没有什么快捷的方式?
检查之后才发现是几个模块更新了导致不兼容了。
现在该如何解决呢? 一个一个模块去指定版本改 package.json 太麻烦了。 有没有什么快捷的方式?
1
Mutoo Nov 9, 2017
1 ) npm shrinkwrap
2 )使用最新版的 npm 3 )使用 yarn 会生成相应的 lockfile 锁定当前使用的版本。 |
2
WispZhan Nov 9, 2017
package.json 里没有指明具体版本号的升级策略? ^x.x.x,~x.x.x 或者直接写死某个具体版本号 x.x.x。
对于这种 升级了就不兼容的第三方库,一般升级策略比较保守,不应该直接用通配代替具体版本。 |
3
est Nov 9, 2017
重写。工作量来了。
|
4
duan602728596 Nov 9, 2017 via iPhone
哪些模块更新了?
|
5
tongjun Nov 9, 2017
不要升级
npm shrinkwrap 不好用,新版的 npm 会生成 package-lock.json 来锁定版本号 |
6
firhome OP @tongjun 那我现在直接升级 npm 就可以了吗? 现在就我本地机器上的 node_modules 里的模块是正确的。那我升级后怎么把本地的版本导出来呢?
|
7
firhome OP @duan602728596 一些依赖 vue 的第三方模块,因为 vue 的升级,导致这些第三方模块一些写法报错
|