Npm package.lock.json文件的正确用法是什么

Npm package.lock.json文件的正确用法是什么,npm,npm-install,package.json,Npm,Npm Install,Package.json,package.lock.json文件的确切用途是什么?我读过,但它让人困惑 假设我进行npm安装,这样它将创建一个package.lock.json文件,下次我进行npm安装时,它是否会保留与package.lock.json文件中提到的相同的包的安装 假设我在package.json文件中有一个定义为^1.0.0的包版本,新版本在npm注册表中可用。当我安装npm时,它会更新包吗,还是会保持与package.json中的内容相同 有没有一种简单的方法可以在不逐个手动更新的情况下更新packa

package.lock.json文件的确切用途是什么?我读过,但它让人困惑

假设我进行npm安装,这样它将创建一个package.lock.json文件,下次我进行npm安装时,它是否会保留与package.lock.json文件中提到的相同的包的安装

假设我在package.json文件中有一个定义为^1.0.0的包版本,新版本在npm注册表中可用。当我安装npm时,它会更新包吗,还是会保持与package.json中的内容相同

有没有一种简单的方法可以在不逐个手动更新的情况下更新package.json文件的确切版本号?我想保持包的版本不变,以便下次任何人安装npm时,他们应该得到完全相同的包。它需要一个发布分支

实际上,我需要package.lock.json文件的原始定义,但我发现它的行为不一致


我尝试使用NPM CI,但失败了,错误是node_gyp需要python

package.lock.json文件的确切用途是什么

Ans:该文件用于描述最初生成的确切树,即最初用于安装的依赖项版本注意:如果npm修改package.json或node_模块,则始终会修改该文件

资料来源:

现在谈谈你的具体问题:

假设我进行npm安装,这样它将创建一个package.lock.json文件,下次我进行npm安装时,它是否会保留与package.lock.json文件中提到的相同的包的安装

答案很简单:是的

在最初进行npm安装时,需要指定包名。npm将创建node_modules文件夹和package-lock.json文件,并添加用于安装的版本的包条目。下次进行npm安装时,如果不指定包,它将不会更新任何包,即使带有插入符号^s,因为这次npm将查看存在的package-lock.json文件,并将安装package-lock.json文件中指定的相同版本

假设我在package.json文件中有一个定义为^1.0.0的包版本,新版本在npm注册表中可用。当我安装npm时,它会更新包吗,还是会保持与package.json中的内容相同

正如第一个问题中所解释的,如果目录中存在package-lock.json,则不会出现这种情况。只有在目录中不存在package-lock.json文件和node_modules文件夹时,才会更新包

有没有一种简单的方法可以在不逐个手动更新的情况下更新package.json文件的确切版本号?我想保持包的版本不变,以便下次任何人安装npm时,他们应该得到完全相同的包。它需要一个发布分支

使用npm ci是一种很好的做法,但是您也可以使用npm update,这将把依赖项更新到最新的次要版本,并且您的package.json以及package-lock.json文件也将更新


对于生产,它的首选方法是使用最初使用的相同版本的依赖项。在这种情况下,最好有package-lock.json文件,因此,如果在进行npm安装时对应用程序进行dockerizing,它将使用package-lock.json中使用的版本安装依赖项。package.lock.json文件的确切用途是什么

Ans:该文件用于描述最初生成的确切树,即最初用于安装的依赖项版本注意:如果npm修改package.json或node_模块,则始终会修改该文件

资料来源:

现在谈谈你的具体问题:

假设我进行npm安装,这样它将创建一个package.lock.json文件,下次我进行npm安装时,它是否会保留与package.lock.json文件中提到的相同的包的安装

答案很简单:是的

在最初进行npm安装时,需要指定包名。npm将创建node_modules文件夹和package-lock.json文件,并添加用于安装的版本的包条目。下次进行npm安装时,如果不指定包,它将不会更新任何包,即使带有插入符号^s,因为这次npm将查看存在的package-lock.json文件,并将安装package-lock.json文件中指定的相同版本

假设我在package.json文件中有一个定义为^1.0.0的包版本,新版本在npm注册表中可用。当我安装npm时,它会更新软件包吗, 或者它会保持与package.json中的内容相同吗

正如第一个问题中所解释的,如果目录中存在package-lock.json,则不会出现这种情况。只有在目录中不存在package-lock.json文件和node_modules文件夹时,才会更新包

有没有一种简单的方法可以在不逐个手动更新的情况下更新package.json文件的确切版本号?我想保持包的版本不变,以便下次任何人安装npm时,他们应该得到完全相同的包。它需要一个发布分支

使用npm ci是一种很好的做法,但是您也可以使用npm update,这将把依赖项更新到最新的次要版本,并且您的package.json以及package-lock.json文件也将更新


对于生产,它的首选方法是使用最初使用的相同版本的依赖项。在这种情况下,最好有package-lock.json文件,因此如果在执行npm安装时对应用程序进行dockerizing,它将使用package-lock中使用的版本安装依赖项。json

您阅读了文档吗?是的,我已经阅读了,这没有帮助,似乎即使存在锁文件,我也会获得新的包。似乎npm ci是用于获取确切包的命令,但正如我所说的那样,这也失败了。您是否阅读了文档?是的,我已经看过了,它没有帮助,似乎即使存在锁文件,我也会得到新的包。似乎npm ci是用于获得确切包的命令,但正如我提到的,这也失败了。参考第二点,node_模块文件夹是否需要在那里使用锁文件,或者如果说新的包是1.0.1,仍然满足^1.0.0,并且在package.lock.json中,它的1.0.0和node模块文件夹不可用,它会安装package 1.0.1还是1.0.0 node_模块文件夹不需要在那里使用package-lock.json,该文件可以独立存在,因此当您在该目录中进行npm安装时,它将安装package-lock.json中存在的依赖项版本,即1.0.0,但是,如果您有意将package.json中的版本更改为1.0.1,它将安装1.0.1或最新的次要版本,并根据第二点将package-lock.json依赖项更新为1.0.1,node_模块文件夹是否需要在那里使用锁文件,或者如果说新的包是1.0.1,仍然满足^1.0.0,并且在package.lock.json中,它的1.0.0和node模块文件夹不可用,它会安装package 1.0.1还是1.0.0 node_模块文件夹不需要在那里使用package-lock.json,该文件可以独立存在,因此当您在该目录中进行npm安装时,它将安装package-lock.json中存在的依赖项版本,即1.0.0,但是,如果您有意将package.json中的版本更改为1.0.1,它将安装1.0.1或最新的次要版本,并将package-lock.json依赖项更新为1.0.1