一尘不染

如何设置本地安装npm软件包的自定义位置?

node.js

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

默认情况下,npm
local安装最终会在node_modules当前目录中进行,但是我希望它安装node_modules在其他目录中vendor/node_modules。我该如何实现?


阅读 370

收藏
2020-07-07

共1个答案

一尘不染

TL; DR

您可以通过使用--prefix标志和--global*标志来实现。

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

*即使这是“全局”安装,除非~/foo/vendor/node_modules存在中,否则无法通过命令行访问已安装的垃圾箱PATH

TL; R

的每个可配置属性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变量进入config变量(/usr/local默认情况下)。

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

聚苯乙烯

一般而言,npm的文档确实很有帮助。该文件夹的部分是新公共管理的一个良好的结构概述和配置部分回答了这个问题。

2020-07-07