Node.js与Npm标准安装与Npm全球安装

Node.js与Npm标准安装与Npm全球安装,node.js,npm,Node.js,Npm,我已经从他们的网站上安装了node.jsv8.11.3,并且内置了npmv5.6 这些文件位于我的“program files\nodejs”文件夹中 但最近我意识到我可以跑步: npm安装-g npm@“某些版本(升级或降级)” 另一个版本将在全局范围内安装,这些文件将保存在我的“%appdata%\npm\node\u modules\”文件夹中 问题1: 如果我这样做,在VSCode终端上运行下一个npm命令时会发生什么?那么我将使用哪个版本?全局版本会覆盖内置版本吗? 问题2: 还有,如

我已经从他们的网站上安装了
node.jsv8.11.3
,并且内置了
npmv5.6

这些文件位于我的“program files\nodejs”文件夹中

但最近我意识到我可以跑步:

npm安装-g npm@“某些版本(升级或降级)”

另一个版本将在全局范围内安装,这些文件将保存在我的“%appdata%\npm\node\u modules\”文件夹中

问题1:

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

问题2:

还有,如果我在我的一个项目中本地安装npm会发生什么?本地版本alsos是否覆盖内置版本?它是否也覆盖任何全局版本?

问题3:

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


谢谢。

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

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


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

当您在Windows上安装软件并尝试从控制台使用命令时,它会采用您正在运行的命令的名称,并在Windows的路径环境变量中查找运行命令时要查找的文件夹列表。如果像您所说的那样运行
npm install-g npm
,那么在终端上运行的npm版本将是PATH环境变量中显示的第一个版本

问题2:另外,如果我在我的一个项目中本地安装npm会发生什么?本地版本是否也覆盖内置版本?它是否也覆盖任何全局版本?

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

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

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