Npm标准安装的Node.js与Npm的全局安装

时间:2018-08-04 11:16:40

标签: node.js npm

我已经从他们的网站上安装了node.js v8.11.3,并且内置npm v5.6

这些文件在我的“ program files \ nodejs”文件夹中。

但是最近我知道我可以跑步:

npm install -g npm @"some version (upgrade or downgrade)"

和另一个版本将被全局安装,这些文件将位于我的“%appdata%\ npm \ node_modules \”文件夹中。

问题1:

如果执行此操作,在VSCode终端上运行下一个npm命令时会发生什么?那我将使用哪个版本?全局版本会覆盖内置版本吗?

问题2:

而且,如果我在一个项目中本地安装npm会发生什么情况?本地版本是否也覆盖内置版本?它也会覆盖任何全局版本吗?

问题3:

使用npm安装npm很奇怪。这很常见吗?

谢谢。

2 个答案:

答案 0 :(得分:1)

问题1:如果这样做,当我在VSCode终端上运行下一个npm命令时会发生什么?那我将使用哪个版本?全局版本会覆盖内置版本吗?

在Windows上安装软件并尝试从控制台使用命令时,它将获取您正在运行的命令的名称,并在Windows的 PATH环境变量中查找以下内容的列表:运行命令时要查找的文件夹。如果您要像说的那样运行npm install -g npm,则在终端上运行的NPM版本将是出现在PATH环境变量中的第一个版本。

问题2:而且,如果我在一个项目中本地安装npm会怎样?本地版本是否也覆盖内置版本?它也会覆盖任何全局版本吗?

由于PATH环境变量可能不会扩展到项目中的node_modules文件夹,因此它可能不会发生任何变化。本地安装的节点模块本质上是本地的,这意味着它们很少与文件夹外的任何东西交互,因此必须调用它们。

问题3:使用npm安装npm感觉很奇怪。这很常见吗?

我不能说这很普遍。我怀疑大多数节点开发人员会经常自行安装npm。如果这样做,他们可能不会通过已经正常工作的npm来这样做。但是,您可以使用npm update通过npm 更新所有已安装的软件包,包括npm本身。

答案 1 :(得分:0)

基本上根据文档,我将对两个问题有一个答案:

  

如果您要安装要在程序中使用的内容,请使用require('whatever'),然后在项目的根目录本地安装。   如果您要在外壳程序中安装要使用的东西,在命令行或其他东西上,请进行全局安装,以便其二进制文件最终位于您的PATH环境变量中。

文档here