NPM 全局模块安装位置
首先你可以输入 npm con 命令,看看会什么:
$ npm con list ; cli cons user-agent = "npm/3.10.10 node/v6.10.3 linux x64" ; usercon /home/sitepoint/.npmrc prefix = "/home/sitepoint/.node_modules_global" ; node bin location = /usr/bin/nodejs ; cwd = /home/sitepoint ; HOME = /home/sitepoint ; "npm con ls -l" to show all defaults.
npm con 命令提供了我们的安装的信息。现在,让我们它们的安装位置。
$ npm con get prefix /usr
This is the prefix we want to change, so as to install global packages in our home directory. To do that create a new directory in your home folder.
$ cd ~ && mkdir .node_modules_global $ npm con set prefix=$HOME/.node_modules_global
为了在我们的 home 目录安装全局模块,我们要更改的 prefix 就是这个,我们首先在 home 目录中创建新夹。
$ npm con get prefix /home/sitepoint/.node_modules_global $ cat .npmrc prefix=/home/sitepoint/.node_modules_global
我们仍然在 root 目录下安装了 npm, 但是由于我们变了全局模块的安装位置,我们需要再一次安装 npm,这一次我们会安装最新版本的 npm5到目录。
$ npm install npm --global └─┬ npm@5.0.2 ├── abbrev@1.1.0 ├── ansi-regex@2.1.1 .... ├── wrappy@1.0.2 └── write-file-atomic@2.1.0
最后我们需要 .node_modules_global/bin 至 $PATH 环境变量。
这样我们就可以在命令行运行这些全局模块。
在 .profile,.bash_profile 或者 .bashrc 中下面这一行,并重启你的终端。
`export PATH="$HOME/.node_modules_global/bin:$PATH"`
现在,命令行会首先发现 .node_modules_global/bin 目录,并且会使用正确的 npm 版本。
$ which npm /home/sitepoint/.node_modules_global/bin/npm $ npm --version 5.0.2