Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 为什么不指定一个指定的版本,那么我们就不';我不需要这个包-lock.json_Node.js_Npm - Fatal编程技术网

Node.js 为什么不指定一个指定的版本,那么我们就不';我不需要这个包-lock.json

Node.js 为什么不指定一个指定的版本,那么我们就不';我不需要这个包-lock.json,node.js,npm,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仍然在版本前面添加^ 问题2- 如果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仍然在版本前面添加
^

问题2-

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

1

您可以添加
——保存精确的

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

二,

^
~
npm
向您提供的获取依赖项的
最新来源的方法。不过有时候也有风险


阅读本文以获得更详细的解释

假设NPM设计用于安装和记录用户提供的指定版本,那么我们不需要package-lock.json,我的理解正确吗?是的。我想是的。因为
node\u模块
中的所有依赖项版本在
package.json中都是相同的