更新我的依赖项后,npm安装无法正常工作

时间:2015-09-26 16:23:50

标签: javascript angularjs node.js

我一直在关注谷歌的角度教程,我在step 7之后遇到了麻烦。

我已经像bower.json那样更新了我的依赖关系(添加" angular-route":" ~1.4.0"):

{
  "name": "angular-phonecat",
  "description": "A starter project for AngularJS",
  "version": "0.0.0",
  "homepage": "https://github.com/angular/angular-phonecat",
  "license": "MIT",
  "private": true,
  "dependencies": {
    "angular": "1.4.x",
    "angular-mocks": "1.4.x",
    "jquery": "~2.1.1",
    "bootstrap": "~3.1.1",
    "angular-route": "~1.4.0"
  }
}

这是我输入的内容:

pavels@pavels:~/Desktop/angular-phonecat$ sudo npm install

这是我的错误:

npm WARN cannot run in wd angular-phonecat@0.0.0 bower install (wd=/home/pavels/Desktop/angular-phonecat)

我对AngularJS等javascript框架等前端内容很陌生,我该怎么做才能解决它?我做错了什么?

好吧,我已经全局安装了bower(通过运行sudo npm install -g bower) 这就是我在尝试从我正在工作的目录中运行bower install时得到的结果:

/usr/local/lib/node_modules/bower/node_modules/insight/node_modules/configstore/index.js:46
            throw err;
                  ^
Error: EACCES, permission denied '/home/pavels/.config/configstore/insight-bower.json'
You don't have access to this file.

at Error (native)
at Object.fs.openSync (fs.js:500:18)
at Object.fs.readFileSync (fs.js:352:15)
at Object.create.all.get (/usr/local/lib/node_modules/bower/node_modules/insight/node_modules/configstore/index.js:27:26)
at Object.Configstore (/usr/local/lib/node_modules/bower/node_modules/insight/node_modules/configstore/index.js:20:44)
at new Insight (/usr/local/lib/node_modules/bower/node_modules/insight/lib/index.js:37:34)
at ensureInsight (/usr/local/lib/node_modules/bower/lib/util/analytics.js:25:19)
at Object.setup (/usr/local/lib/node_modules/bower/lib/util/analytics.js:41:9)
at Object.<anonymous> (/usr/local/lib/node_modules/bower/bin/bower:72:11)
at Module._compile (module.js:460:26)

3 个答案:

答案 0 :(得分:0)

似乎npm不能在工作目录中运行,试试这个

sudo npm install --unsafe-perm

如果仍然无效,请尝试将以下内容添加到package.json

"config": {
    "unsafe-perm":true
}

第3个选项是将/ usr / local / lib / node_modules的所有者更改为您的user_name,然后在没有sudo的情况下运行npm insall。

chown -R your_user_name usr/local/lib/node_modules

答案 1 :(得分:0)

您有目录权限问题。我建议你改变你安装node.js的方法。 nvm是解决此问题的绝佳方法。请务必卸载所有全局程序包(npm ls -g -depth=0,然后为每个程序包卸载npm uninstall -g <package>。然后卸载节点并通过nvm重新安装它。这应该可以解决您的所有权限问题。运行sudo时,您不再需要使用npm install

答案 2 :(得分:0)

您正在运行sudo npm install因此安装脚本 以root身份执行。安装脚本会触发bower install,但是bower不允许以 root 执行(除了--allow-root选项,但情况并非如此)。

解决方案是放弃以root身份启动npm的习惯。您可能会遇到EACCESS错误权限,因为npm文件夹目前归 root 所有。首先关注fixing npm permissions

然后重试npm install