我已经从他们的网站上安装了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
很奇怪。这很常见吗?
谢谢。
答案 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