Answers:
在package.json中指定的软件包版本的npm install和npm update处理之间的区别:
{
"name": "my-project",
"version": "1.0", // install update
"dependencies": { // ------------------
"already-installed-versionless-module": "*", // ignores "1.0" -> "1.1"
"already-installed-semver-module": "^1.4.3" // ignores "1.4.3" -> "1.5.2"
"already-installed-versioned-module": "3.4.1" // ignores ignores
"not-yet-installed-versionless-module": "*", // installs installs
"not-yet-installed-semver-module": "^4.2.1" // installs installs
"not-yet-installed-versioned-module": "2.7.8" // installs installs
}
}
简介:唯一的不同是已安装的模块具有模糊版本控制 ...
npm install
npm update
另外:install
和update
默认手柄devDependencies不同
npm install
除非添加标志,否则将安装/更新 devDependencies--production
npm update
除非添加标志,否则将忽略 devDependencies--dev
为什么要使用npm install
?
因为npm install
除了在中处理依赖项外,您还能查看更多内容package.json
。如您在npm install中所见,您可以...
PATH
)npm install -g <name>
--force
npm install --save somePackage
将*保存为依赖项?
postinstall
在安装时运行,但不能在更新时运行。
install
和update
在上指定的git URL,git标记等上不同,package.json
则最好将这些情况添加到示例中。
1.3.0 -> 1.3.1
这是类似的^1.3.0
,这里的^
更新主要版本,即1.3.0 -> 1.4.0
。
npm install安装package.json
文件中列出的所有模块及其依赖项。
npm update更新node_modules
目录中的所有软件包及其依赖项。
npm install express仅安装express模块及其依赖项。
npm update express更新Express模块(从npm@2.x开始,它不更新其依赖项)。
因此,更新适用于您已经拥有该模块并希望获得新版本的情况。
npm install
还是npm update
?或者,换句话说,我现在正在使用npm install
并且似乎也在进行更新,是否有任何理由为什么我应该使用npm update
?
update
,无论package.json是什么,总是会更新到最新版本,同时install
会尊重package.json中给出的版本吗?
update
安装(或更新)模块的最新版本。install
如果未提供模块的最新版本,则安装该模块的最新版本,否则保留当前版本。
npm update
会根据您的package.json更新到最新版本,无论如何。如果您具有“ express”:“ 3.x”,并且您使用的是3.1.0版本,它将更新为最新的3.x标记。如果有4.x版本,则不会安装最新版本。
在大多数情况下,这将安装npm上发布的模块的最新版本。
npm install express --save
或更好地将模块升级到最新版本使用:
npm install express@latest --save --force
--save
:软件包将出现在您的依赖项中。
更多信息:npm-install
npm install express@latest --save --force
正是我想要的
已经提到了许多区别。这里还有一个:
运行npm install
在源代码目录的顶部将运行各种脚本:prepublish
,preinstall
,install
,postinstall
。根据这些脚本的作用,a npm install
可能会比仅安装依赖项执行更多的工作。
我刚刚有一个用例,其中prepublish
将调用make
,并且Makefile
被设计为package.json
在更新后获取依赖项。npm install
从内进行调用Makefile
将导致无限递归,而调用npm update
工作得很好,安装所有依赖项,以便即使make
直接调用也可以继续进行构建。
redis
模块,并且other_module
需要的较旧版本redis
,npm install other_module
则将保证other_module
将使用较旧的版本。other_module/node_modules/redis
必要时可以添加。
~1.3
呢?