小编典典

如何为本地安装 npm 包设置自定义位置?

all

是否npm install可以通过命令标志或环境变量为 指定自定义包目的地?

默认情况下,npm
本地安装最终在node_modules当前目录中,但我希望它安装node_modules在不同的目录中,例如vendor/node_modules.
我怎样才能做到这一点?


阅读 100

收藏
2022-06-28

共1个答案

小编典典

TL;博士

您可以通过使用--prefix标志和--global* 标志来做到这一点。

pje@friendbear:~/foo $ npm install bower -g --prefix ./vendor/node_modules
bower@0.7.0 /Users/pje/foo/vendor/node_modules/bower

*即使这是“全局”安装,安装的 bin 也无法通过命令行访问,除非~/foo/vendor/node_modules存在于PATH.

TL;博士

的每个可配置属性npm都可以在六个不同位置中的任何一个中设置。按优先顺序:

  • 命令行标志: --prefix ./vendor/node_modules
  • 环境变量:NPM_CONFIG_PREFIX=./vendor/node_modules
  • 用户配置文件: $HOME/.npmrcuserconfig参数
  • 全局配置文件: $PREFIX/etc/npmrcuserconfig参数
  • 内置配置文件: path/to/npm/itself/npmrc
  • 默认配置: node_modules/npmconf/config-defs.js

默认情况下,本地安装的包进入./node_modules. 全局变量进入prefix配置变量(/usr/local默认情况下)。

您可以运行npm config list以查看当前配置并npm config edit进行更改。

附言

一般来说,npm的文档真的很有帮助。文件夹部分是 npm
的一个很好的结构概述,配置部分回答了这个问题。

2022-06-28