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

node.js Node.js

蛋蛋猿

2020-03-24

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

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

第3427篇《如何设置本地安装npm软件包的自定义位置?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

3个回答
古一村村Gil 2020.03.24

例如,在Windows 7上,可以使用以下命令/操作集。

创建一个个人环境变量,必须使用双反斜杠:

  • 变量名: %NPM_HOME%
  • 可变值: C:\\SomeFolder\\SubFolder\\

现在,将配置值设置为新文件夹(示例性文件名):

  • 设置npm文件夹

npm config set prefix "%NPM_HOME%\\npm"

  • 设置npm-cache文件夹

npm config set cache "%NPM_HOME%\\npm-cache"

  • 设置npm临时文件夹

npm config set tmp "%NPM_HOME%\\temp"

(可选)您可以更改配置之前清除原始文件夹的内容

  • 删除npm-cache npm cache clear

  • 列出npm模块 npm -g ls

  • 删除npm模块 npm -g rm name_of_package1 name_of_package2

蛋蛋飞云 2020.03.24

对于OSX,您可以转到用户的目录$HOME(可能是/ Users / yourname /),如果尚不存在,则创建一个.npmrc文件(npm用于用户配置的文件),并为npm软件包创建目录以安装在(例如,/ Users /您的名字/ npm)中。在该.npmrc文件中,将“ prefix”设置为新的npm目录,该目录将安装“全局”安装的npm软件包。这些“全局”软件包显然仅对您的用户帐户可用。

在.npmrc中:

prefix=${HOME}/npm

然后从命令行运行此命令:

npm config ls -l

它应该在您自己的本地配置和全局npm配置上提供输出,并且您应该看到本地前缀配置得到反映,可能在长输出列表的顶部附近。

为了安全起见,我建议使用这种方法通过设置/usr/local文件夹来配置用户帐户的npm行为,我在其他地方已经看到了这种建议。

Mandy村村 2020.03.24

如果要在配置中使用此功能,则可以这样设置npm config:

npm config set prefix "$(pwd)/vendor/node_modules"

要么

npm config set prefix "$HOME/vendor/node_modules"

检查您的配置

npm config ls -l

或如@pje所说并使用--prefix标志

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android