npm 安装时出错

Posted

技术标签:

【中文标题】npm 安装时出错【英文标题】:error when npm install 【发布时间】:2016-06-22 08:09:31 【问题描述】:

我是初学者,我正在尝试学习 Angular,所以我正在尝试使用 angular-seed 安装一个新项目。但是当我执行 npm install 时,我收到一个我不知道来自哪里的错误。我已经安装了节点。版本为 5.5.0。这是我在控制台中遇到的错误。

npm 动词安装错误:不支持 npm 动词安装在 checkPlatform (/usr/lib/node_modules/npm/node_modules/npm-install-checks/index.js:46:14) npm 动词安装在 Array 上。 (/usr/lib/node_modules/npm/node_modules/slide/lib/bind-actor.js:15:8) npm 动词安装在 LOOP (/usr/lib/node_modules/npm/node_modules/slide/lib/chain.js:15:14) npm 动词安装在 /usr/lib/node_modules/npm/node_modules/slide/lib/chain.js:18:7 npm 动词安装在 checkEngine (/usr/lib/node_modules/npm/node_modules/npm-install-checks/index.js:25:10) npm 动词安装在 Array 上。 (/usr/lib/node_modules/npm/node_modules/slide/lib/bind-actor.js:15:8) npm 动词安装在 LOOP (/usr/lib/node_modules/npm/node_modules/slide/lib/chain.js:15:14) npm动词安装在链上(/usr/lib/node_modules/npm/node_modules/slide/lib/chain.js:20:5) npm 动词安装在 module.exports.isInstallable (/usr/lib/node_modules/npm/lib/install/validate-args.js:26:3) npm 动词安装在 resolveWithNewModule (/usr/lib/node_modules/npm/lib/install/deps.js:452:12) 使用 /home/david/.npm/_locks/staging-7c9a6a9e85daffeb.lock 的 npm 动词锁定 /home/david/DiabetesApp/angular-seed/node_modules/.staging npm 动词解锁使用 /home/david/.npm/_locks/staging-7c9a6a9e85daffeb.lock 完成 /home/david/DiabetesApp/angular-seed/node_modules/.staging npm动词堆栈错误:EACCES:权限被拒绝,mkdir'/home/david/DiabetesApp/angular-seed/node_modules/.staging' 错误时的 npm 动词堆栈(本机) npm 动词 cwd /home/david/DiabetesApp/angular-seed npm 错误! Linux 3.13.0-76-通用 npm 错误! argv “/usr/bin/nodejs” “/usr/bin/npm” “安装” “--verbose” npm 错误!节点 v5.5.0 npm 错误! npm v3.3.12 npm 错误!路径 /home/david/DiabetesApp/angular-seed/node_modules/.staging npm 错误!代码 EACCES npm 错误!错误号 -13 npm 错误!系统调用 mkdir npm 错误!错误:EACCES:权限被拒绝,mkdir '/home/david/DiabetesApp/angular-seed/node_modules/.staging' npm 错误!在错误(本机) npm 错误! [错误:EACCES:权限被拒绝,mkdir '/home/david/DiabetesApp/angular-seed/node_modules/.staging'] npm 错误!错误号:-13, npm 错误!代码:'EACCES', npm 错误!系统调用:'mkdir', npm 错误!路径:'/home/david/DiabetesApp/angular-seed/node_modules/.staging' npm 错误! npm 错误!请尝试以 root/管理员身份再次运行此命令。 npm 动词退出 [ -13, true ] npm 错误!请在任何支持请求中包含以下文件: npm 错误! /home/david/DiabetesApp/angular-seed/npm-debug.log

【问题讨论】:

使用 sudo npm install 【参考方案1】:

问题:您(用户)没有正确的目录权限集。

即时解决办法是使用 sudo 运行 npm install,但这可能会给您同样的错误,或者安装不正确。


解决方案/建议:更改npm的默认目录(来自官方docs)

在继续之前备份您的计算机。

(可选)万一安装有误,请先卸载:

npm uninstall <package-name>  # use sudo if you used it while installation
npm cache verify  # or, npm cache clean for npm version below 5.x.x 

    为全局安装创建一个目录:

    mkdir ~/.npm-global

    配置 npm 使用新的目录路径:

    npm config set prefix '~/.npm-global'

    打开或创建~/.profile~/.bash_profile 文件并添加以下行:

    export PATH=~/.npm-global/bin:$PATH

    回到命令行,更新你的系统变量,或者重启终端:

    source ~/.profile

    (可选)测试:在不使用 sudo 的情况下全局下载包。

    npm install -g jshint

【讨论】:

【参考方案2】:

“请尝试以 root/管理员身份再次运行此命令。”

试试sudo npm install

【讨论】:

我已经试过了。但是我在控制台中得到了这个 无法安装可选依赖项:不支持 WARN 生命周期 angular-seed@0.0.0~postinstall: cannot run in wd %s %s (wd=%s) angular-seed@0.0.0 bower install /主页/大卫/DiabetesApp/angular-seed 我在 github 上找到了这个issue。您可以尝试使用其他版本的 npm。【参考方案3】:

这是一个权限问题。您必须修复此目录的权限,并在不使用 sudo 的情况下运行 npm install

cd your_working_directory
sudo chown -R $( whoami ):$( whoami ) .
sudo chmod -R 755 .
npm install

【讨论】:

【参考方案4】:

为避免 EACCESS 错误,请使用 Node Version Manger 重新安装 node 和 npm(根据 written in npm documentation)。

有关更多详细信息,请访问此帖子: https://***.com/a/49126536/5506730

【讨论】:

以上是关于npm 安装时出错的主要内容,如果未能解决你的问题,请参考以下文章

使用 npm 安装 angular/cli 时出错

CentOS 安装 pm2 运行出错

React-navigation- dependencies (安装 NPM 导航依赖包安装时出错)

在 Azure 应用服务上安装 npm 包时出错

安装“npm install -g ionic cordova”时出错

使用“ npm install wdio”安装webdriverIO时出错,