npm修改包安装全局模式路径(安装到统一的目录)

npm修改包安装全局模式路径(安装到统一的目录)

一 .背景:

今天打开命令行,使用 cnpm 安装 express 库

C:\Windows\System32>cnpm install express
Error: EPERM: operation not permitted, mkdir 'C:\Windows\System32\node_modules'
Error: EPERM: operation not permitted, mkdir 'C:\Windows\System32\node_modules'
at Error (native)

提示没有权限创建目录

一想, 可能是c盘,没有权限创建目录

那就切换到D盘试试嘛

C:\Windows\System32>cd /d d:

D:>cnpm install express
[express@*] installed at node_modules.npminstall\express\4.14.0\express (42 pac kages, use 17s, speed 34.49kB/s, json 306.77kB, tarball 264.74kB)
All packages installed (42 packages installed from npm registry, use 17s, speed 34.27kB/s, json 56(306.77kB), tarball 264.74kB)

成功了~~

那么我就想, npm 有没有一个设置类似于 maven localRepository 的地方

搜索了一下,还真有 http://www.blogjava.net/greatyuqing/archive/2013/07/06/401271.html

像我的话,node_home 在 C:\Program Files\nodejs

那么就修改 C:\Program Files\nodejs\node_modules\npm\npmrc

修改成

prefix=D:\FeiLong Soft\Essential\Development\node_modules

重新打开命令行,执行

C:\Windows\System32>cnpm install express
Error: EPERM: operation not permitted, mkdir 'C:\Windows\System32\node_modules'
Error: EPERM: operation not permitted, mkdir 'C:\Windows\System32\node_modules'
at Error (native)

纳尼!!!??? 还是不行 !!

二 .解决方案:

其实 npm 安装分为 全局安装 和 本地安装,参见 http://www.runoob.com/nodejs/nodejs-npm.html

全局安装与本地安装

npm 的包安装分为本地安装(local)、全局安装(global)两种,从敲的命令行来看,差别只是有没有 -g 而已,比如

npm install express          # 本地安装
npm install express -g   # 全局安装

区别:

本地安装

  1. 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。
  2. 可以通过 require() 来引入本地安装的包。

全局安装

  1. 将安装包放在 /usr/local 下或者你 node 的安装目录。
  2. 可以直接在命令行里使用。

好嘛,我的目的是安装到一个统一的目录,那么执行 cnpm install express -g

C:\Windows\System32>cnpm install express -g
[express@*] installed at node_modules\.express_npminstall\express\4.14.0\express  (42 packages, use 1s, speed 200.77kB/s, json 266.21kB, tarball 0B)
All packages installed (42 packages installed from npm registry, use 1s, speed 1 92.91kB/s, json 48(266.21kB), tarball 0B)

安装成功,目的达成

三.参考:

---完

猜你喜欢

转载自feitianbenyue.iteye.com/blog/2314349