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

25 浏览
0 Comments

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

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

默认情况下,npm本地安装会放在当前目录下的node_modules中,但我想将其安装到不同目录下的node_modules,例如vendor/node_modules。我该如何做到这一点?

0
0 Comments

问题的原因是希望在本地安装npm包时,能够将其安装到自定义的位置。解决方法是在用户目录下创建一个.npmrc文件,并在其中设置"prefix"为新的npm目录。然后运行命令"npm config ls -l"来验证配置是否生效。这种方法比修改/usr/local文件夹的所有权更安全。

0
0 Comments

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

问题的原因:用户想要将npm包的本地安装位置设置为自定义位置。

解决方法:

1. 使用--prefix标志和--global标志进行安装:

pje:~/foo $ npm install bower -g --prefix ./vendor/node_modules

2. 在PATH中添加~/foo/vendor/node_modules路径,以便能够通过命令行访问已安装的二进制文件。

3. 可以在六个不同的位置设置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

4. 默认情况下,本地安装的包放在./node_modules中,全局安装的包放在prefix配置变量中(默认为/usr/local)。

5. 可以运行npm config list查看当前配置,运行npm config edit进行更改。

相关问题:

- 通过npm install eslint.4.0 -g --prefix c:\my_npm命令安装的包会被放置在c:\my_npm\eslint路径下。

- 是否可以通过package.json文件实现类似的功能?即在目录A中运行npm install时,包将被安装在目录B中。这种解决方案似乎适用于单个包的安装。

- 是否有办法使用这种方法安装所有的依赖项?npm install会将依赖项安装在本地,npm install X -g --prefix "..."会将模块X安装到指定的前缀位置,npm install -g --prefix "..."会将当前包安装到指定的前缀位置。

- 如何告诉npm不要将其文件放置在用户的各个目录中,而只允许在特定位置(例如D:\Projects)保存文件?

通过使用--prefix标志和--global标志,可以将npm包的本地安装位置设置为自定义位置。可以通过命令行标志、环境变量、用户配置文件、全局配置文件、内置配置文件和默认配置来设置npm的可配置属性。默认情况下,本地安装的包放在./node_modules中,全局安装的包放在prefix配置变量中。可以使用npm config list命令查看当前配置,使用npm config edit命令进行更改。

0
0 Comments

问题原因:用户想要在本地安装npm包时设置自定义位置。

解决方法:可以通过以下两种方式设置npm配置:

1. 使用npm config set prefix "$(pwd)/vendor/node_modules"命令将npm配置设置为当前目录下的vendor/node_modules路径。

2. 使用npm config set prefix "$HOME/vendor/node_modules"命令将npm配置设置为HOME/vendor/node_modules路径。

可以使用npm config ls -l命令检查配置。

此外,还可以采用--prefix标志的方法。这种方法将设置全局前缀,因此使用npm install仍然会将包安装在./node_modules目录下,而使用npm install -g则会将包安装在"$(pwd)/vendor/node_modules"目录下。需要注意的是,可能会因为设置了这个配置然后忘记它,导致后来发现全局包的行为出现异常。

0