我一直在关注谷歌的角度教程,我在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)
答案 0 :(得分:0)
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
。