Skip to content

配置

npm config 命令

执行 npm help config 在浏览器打开命令 npm config 的介绍页。

  • npm config list 展示部分配置
  • npm config list --json 以 json 格式展示所有配置

npm config list

; "builtin" config from D:\nodejs\node_modules\npm\npmrc

prefix = "C:\\Users\\zbxtqw\\AppData\\Roaming\\npm"

; node bin location = D:\nodejs\node.exe
; node version = v16.18.1
; npm local prefix = E:\Desktop
; npm version = 8.19.2
; cwd = E:\Desktop
; HOME = C:\Users\zbxtqw
; Run `npm config ls -l` to show all defaults.

npm config list --json

json
{
  "prefix": "C:\\Users\\zbxtqw\\AppData\\Roaming\\npm",
  "cache": "C:\\Users\\zbxtqw\\AppData\\Local\\npm-cache",
  "registry": "https://registry.npmjs.org/",
  "userconfig": "C:\\Users\\zbxtqw\\.npmrc"
  // ...
}

参考:

prefix

表示全局包(prefix/node_modules)、执行脚本(prefix)存放位置。

默认 C:\Users\xxx\AppData\npm

参考:

cache

缓存位置。

registry

npm 源。

userconfig

用于存放用户修改的配置信息,如 npm config set prefix "D:\nodejs" 会向 .npmrc 写入 prefix=D:\nodejs

配置来源

配置存放位置

  • 项目级配置,跟 package.json 文件相邻,如 /path/to/my/project/.npmrc

  • 操作系统用户级配置,如 C:\Users\xxx\.npmrc

  • 全局配置文件,位于 Node 安装目录,如 D:\soft\nvm\v20.10.0\etc\npmrc

  • 内置配置 path/to/npm/itself/npmrc

Preview

执行 npm config list --json,打印:

json
{
  // ...
  "globalconfig": "D:\\soft\\nvm\\v20.10.0\\etc\\npmrc",
  "userconfig": "C:\\Users\\01422772\\.npmrc"
}

Node 包分类

包类型安装位置可执行脚本位置
内置包Node 安装目录下 node_modules 文件夹Node 安装目录
全局包prefix/node_modulesprefix
项目包项目根目录下 node_modeules 文件夹项目/node_modules/.bin

内置包

位于 Node 安装目录下 node_modules 文件夹中,如果内置包提供了可执行脚本,这些脚本直接位于 Node 安装目录下。

Preview
Preview

全局包

npm install -g xxx 安装在 prefix/node_modules 文件夹中,如果全局包提供了可执行脚本,这些脚本直接位于 prefix 文件夹下。

全局包和内置包的区别在于,内置包是 Node 自带的,而全局包是 npm 安装的。它们存放位置相同,都是位于 prefix/node_modules 文件夹中。

项目包

安装在项目根目录下 node_modeules 文件夹中,如果项目包提供了可执行脚本,这些脚本位于 node_modules/.bin 下,如项目安装了 vitepress,可以通过下面方式使用其提供的可执行脚本:

  • npx vitepress dev
  • node_modules/.bin/vitepress dev
  • package.json 中 scripts 字段定义的命令 dev: pnpm dev

修改全局包安装位置

修改全局包安装位置、相应可执行脚本位置:

npm config set prefix "D:\nodejs"

实际上,该命令会在用户目录下的新建 C:\Users\zbxtqw\.npmrc 文件并写入 prefix=D:\nodejs