为什么不指定指定版本,那么我们就不需要package-lock.json

时间:2019-09-10 07:40:14

标签: node.js npm

我是NPM的新手,对不起,如果我的问题听起来很愚蠢。以下是我的问题:

Q1-

当我安装软件包并指定指定的版本时,例如:

  

npm安装xxx@3.5.1

但是为什么在package.json文件中它变成:

{
   "devDependencies": {
      "xxx": "^3.5.1"
   }
}

我知道多余的插入符号(^字符)将接受3.5.2、3.6.0等版本,但不接受4.0.0。但是我确实明确指定了我想要版本3.5.1,那么为什么NPM仍在版本之前添加^

第二季度-

如果NPM安装了用户指定的版本的软件包,那么我们不需要package-lock.json文件,对吗?由于package.json文件中的所有版本都是唯一且明确的?

1 个答案:

答案 0 :(得分:0)

1。

您可以添加--save-exact

npm install lodash --save --save-exact-安装最新版本并将确切版本保存在package.json中的依赖项中。

2。

^~npm为您提供的获取latest依赖源的方式。有时还是有风险的。

阅读此内容以获得更详细的说明。 https://bytearcher.com/articles/semver-explained-why-theres-a-caret-in-my-package-json/