现在有一个情况是这样的,package.js是一样的,
但是node版本不一样,那么下载的npm包会是一样的吗?
会不会存在这样的情况,package里面有些低版本的node不支持,而高版本支持的呢?
最近有点困扰这个问题,希望大家勿喷,谢谢
现在有一个情况是这样的,package.js是一样的,
但是node版本不一样,那么下载的npm包会是一样的吗?
会不会存在这样的情况,package里面有些低版本的node不支持,而高版本支持的呢?
最近有点困扰这个问题,希望大家勿喷,谢谢
5 回答4.8k 阅读✓ 已解决
4 回答2.4k 阅读✓ 已解决
5 回答3.6k 阅读
2 回答1.7k 阅读✓ 已解决
5 回答1.9k 阅读
2 回答1.3k 阅读✓ 已解决
3 回答2k 阅读
你说的问题会有可能存在,比如早期的node版本对ES6支持不完全
还有就是很多package代码是只上传源文件,通过定义package.json的script字段在本地编译代码生成dist的,也会因为node的版本不同有些许变化,但是好的开源库基本上都能做到兼容
另外就是不同版本的node初始默认安装的npm版本也会有不同,比如2.x和3.x在npm包管理上面的方式就有很大区别
还有就是关于npm安装的包的版本的问题,如果一个版本号是 ^1.0.0 这样写的,那么npm会去在大版本确定的情况下尽可能的去找比较新的版本安装,如果该包的作者做了不兼容的升级也会造成两边代码不一样的情况,facebook的yarn(npm的代替品)当初在设计的时候也有考虑到这种情况,并且做了相应优化使用
在package.json里面存在一个 engines 的字段,用来指定node版本,这样就能够很明显的指出我的package里面的代码对node版本的支持情况
package.json
楼主可以看一下这个链接去了解下package.json里面的主要几个字段是干什么用的,这样对学习node会更有帮助