npm install -g <package_name>
>
> 提示:如果您使用的是npm 5.2或更高版本,我们建议使用`npx`全局运行包。
>
>
>
如果出现EACCES权限错误,您可能需要使用版本管理器重新安装npm,或者手动更改npm的默认目录。
## 2、解决全局安装包时的EACCES权限错误
如果在尝试全局安装软件包
时看到`EACCES`错误,您可以:
* 使用节点版本管理器重新安装npm(推荐)
* 手动更改npm的默认目录
>
> 一般情况下是由于系统目录权限导致的,例如在系统盘(C盘)可能会有这种问题,这时候我们安装在C盘之外的其他盘下面(例如:D盘目录下)就可以解决。
>
>
>
### 2.1 重新安装NPM
在安装节点版本管理器之前,您不需要删除当前版本的npm或Node.js。
安装方式可以参考[Node.js的安装]( )
### 2.2 手动更改npm的默认目录
>
> 注意:本节不适用于Windows系统,Windows 最好重新安装一下,换一个安装目录。
>
>
>
1、先备份一下原来npm全局目录
2、在命令行上,在主目录中,为全局安装创建一个目录:
mkdir ~/.npm-global
3、配置npm以使用新的目录路径:
npm config set prefix ‘~/.npm-global’
4、在您喜欢的文本编辑器中,打开或创建一个`~/.profile`文件并添加以下行:
export PATH=~/.npm-global/bin:$PATH
5、在命令行中,更新系统变量:
source ~/.profile
6、要测试您的新配置,请在不使用`sudo`的情况下全局安装一个软件包:
npm install -g jshint
您可以使用相应的ENV变量(例如:如果您不想修改`~/.profile`):
NPM_CONFIG_PREFIX=~/.npm-global
最后,如果不想重新安装原来之前的包,也可以把之前的包,拷贝到当前目录下。
## 3、更新从注册表下载的包
更新从注册表下载的本地和全局包有助于保持代码和工具的稳定、可用和安全。
### 3.1 更新本地包
我们建议定期更新项目所依赖的本地包,以便在改进其依赖项时改进代码。
1、切换到项目的根目录,并确保它包含`package.json`文件:
cd /path/to/project
2、在项目根目录下,运行update命令:
npm update
3、要测试更新,请运行outdated命令
。不应该有任何输出。
npm outdated
### 3.2 更新全局安装的软件包
>
> 注意:如果您使用的是npm 版本过低,在更新包的会报错,建议更新到新版本的npm,然后再更新所有过时的全局包。
>
>
>
请考虑升级到最新版本的npm:
npm install npm@latest -g
### 3.3 确定哪些全局包需要更新
要查看哪些全局包需要更新,请在命令行上运行:
npm outdated -g --depth=0
![](https://img-blog.csdnimg.cn/028cd4a116f24b8ebe50b58fe4568419.png)
### 3.4 更新单个全局包
要更新单个全局包,请在命令行上运行:
npm update -g <package_name>
### 3.5 更新所有全局安装的软件包
要更新所有全局包,请在命令行上运行:
npm update -g
## 4、在项目中使用NPM包
一旦你在`node_modules`中安装了一个包
,你就可以在你的代码中使用它了。
### 4.1 在项目中使用未限定作用域的包
#### Node.js模块
如果你正在创建一个Node.js模块,你可以在你的模块中使用一个包,方法是将它作为参数传递给`require`函数。
var deepMerge = require(‘deepmerge’)
var test = deepMerge.all([[10, 20, 30], [40, 50]])
console.log('test: ', test);
// test: [ 10, 20, 30, 40, 50 ]
#### package.json文件
在`package.json`中,在dependencies下列出包。您可以选择包含语义版本
。
{
“dependencies”: {
“package_name”: “^1.0.0”
}
}
### 4.2 在项目中使用限定了作用域的包
要使用有作用域的包,只要在使用包名的任何地方包含作用域即可。
#### Node.js模块
var projectName = require(“@scope/package-name”)
#### package.json文件
在`package.json`中:
{
“dependencies”: {
“@scope/package_name”: “^1.0.0”
}
}
## 5、使用不推荐使用的软件包
如果您安装了一个软件包,并且它打印了一条弃用消息,我们建议您按照说明操作(如果可能)。这可能意味着更新到新版本,或者更新包依赖项。