关于npm安装及其功能的两部分问题



如果团队开发人员A安装包:

npm install a-cool-package

然后将他/她的代码推送到回购。

开发人员B执行git pull以获得更新的package.json和package-lock.json以及任何更改的文件(可能是为了使用酷包(。

然后Dev B需要说npm install才能使用最新版本的应用程序。

这样做的目的是什么?是为了用酷包及其所有依赖项更新本地node_modules文件夹吗?我认为这是真的,因为您没有在repo中包括node_modules。我说得对吗?

第2部分:当Dev B执行npm install时,所有有更新的软件包都将更新(即,只有典型设置的次要级别和修补程序级别(。

如果你不想破坏东西,但你需要Dev A的东西,有没有其他选择?还是你总是在package.json更改后运行npm install,并希望没有任何中断?

我发现自己对典型的工作流程应该是什么感到困惑,以确保最少的停机时间和代码共享。我担心软件包的更新会有破坏性的更改,我所做的只是运行install来获得另一个开发人员所拥有的。

或者我应该为他安装的特定软件包进行npm安装吗?npm install a-cool-package

第1部分-关于NPM和依赖关系

NPM是一个软件包管理器。它管理包,这些包是您的依赖项。这些位于node_modules目录中。

您不提交node_modules,因为依赖关系可能很大,有时(使用插件(它们只在安装了它们的机器上工作。避免提交依赖项的另一个原因是,有人可能会修改它们,然后当你更新包时,你的项目就会中断。

TL;博士。是的。npm install(缩写:npm i(安装package.jsonnode_modules中列出的包

第2部分-跟踪依赖关系的版本

package.json

package.json跟踪您的项目应该兼容的包的哪些版本(从语义上讲(。可以将其视为软件包版本规范。

package-lock.json

package-lock.json跟踪上次运行npm install时安装的软件包的版本,包括可传递的依赖项。这意味着确切的版本,这里没有使用范围。可以将其视为包版本实现。

选择其中一个

您可以使用npm ci而不是npm i(或npm install(来安装确切的版本,而不是查找应该兼容的最新版本。

最新更新