//大概弄懂了一些吧,说说自己的理解吧,package.json 来控制插件版本只是一个辅助功能,(在现在的版本中,这项辅助功能都被弱化了)它更大的用途是记录自己的项目信息,和生产scripts命令,为何说它控制插件版本被弱化了,
是因为新推出的package-lock.json,这才是真正控制插件版本的,它会在你第一次安装一个新插件的时候,记录下这个插件的版本号等各种信息,并“锁死”。当你的同事在新电脑上下载你的项目,npm install 的时候。一定下载的是和你同一版本,甚至同一下载源的插件。因为他
读取的是package-lock.json 的信息。(为何我们一直强调锁死版本号,源于我们对第三方插件的更新不自信,其实一般也没多大问题)那么当我们确实需要更新我们的插件怎么办,这时候你就可以更改package.json 里面的版本号,那么package-lock.json 会自动监听到,并跟下到
你修改的版本。但官方现在不太推荐你这样做,他希望你重新安装这个插件,并在安装的时候声明你想要的版本。
所以回到问题之初 加不加 ^ 只是一种规范而已,至少现在的npm 版本,已经不会读取package.json 的信息了,如果有package-lock.json 会去找里面的记录信息。
网友评论