很多 Node 开发者甚至前端开发者都知道 --save(npm install 的参数)可以安装一个模块并在 package.json 中记录模块的版本。另外,还有 --save-dev,用于在 devDependencies 添加记录(记录那些不需要在发布时的模块)。不过你知道可以用 -S 和 -D 代替 --save 和 --save-dev 吗?你可以尝试这样做。
在安装模块的时候,去删除 -S 和 -D 为你添加的那些 ^ 记号。它们非常危险,因为它们允许 npm install(或简写为 npm i)从 npm 库中拉取最新的小版本(语义化的版本号中的第2个数)。比如从 v6.1.0 到 v6.2.0 就是一个小版本发布。
npm 团队信任 ,但你不应该信任它。我的意思是他们加上 ^ 符号是因为他们相信开源作者不会在小版本中引入打破接口的改变。任何理智的人都不应该相信它。锁定你的版本号。甚至最好使用 :npm shrinkwrap 为会依赖的版本创建新的文件。
来源: