我正在学习角度,现在我正在使用谷歌的官方角度教程。困扰我的一件事是我无法在我工作的projct文件夹中创建bower_components。我通过提供一个指向bootstrap和angular的cdn链接来规避这个问题,但由于某种原因,这对于angular-router-ui链接不起作用。
当我尝试安装bower时出现此错误
bower EACCES EACCES, mkdir '/home/johan/angular-phonecat/app/bower_components'
Stack trace:
Error: EACCES, mkdir '/home/johan/angular-phonecat/app/bower_components'
Console trace:
Trace
at StandardRenderer.error (/home/johan/angular-phonecat/node_modules/bower/lib/renderers/StandardRenderer.js:72:17)
at Logger.<anonymous> (/home/johan/angular-phonecat/node_modules/bower/bin/bower:111:22)
at Logger.EventEmitter.emit (events.js:95:17)
at Logger.emit (/home/johan/angular-phonecat/node_modules/bower/node_modules/bower-logger/lib/Logger.js:29:39)
at /home/johan/angular-phonecat/node_modules/bower/lib/commands/index.js:40:20
at _rejected (/home/johan/angular-phonecat/node_modules/bower/node_modules/q/q.js:797:24)
at /home/johan/angular-phonecat/node_modules/bower/node_modules/q/q.js:823:30
at Promise.when (/home/johan/angular-phonecat/node_modules/bower/node_modules/q/q.js:1035:31)
at Promise.promise.promiseDispatch (/home/johan/angular-phonecat/node_modules/bower/node_modules/q/q.js:741:41)
at /home/johan/angular-phonecat/node_modules/bower/node_modules/q/q.js:557:44
System info:
Bower version: 1.3.7
Node version: 0.10.25
OS: Linux 3.13.0-30-generic x64
npm ERR! weird error 1
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian
npm ERR! not ok code 0
johan@johan-desktop:~/angular-phonecat$ ls
app bower.json LICENSE node_modules package.json README.md scripts test
johan@johan-desktop:~/angular-phonecat$ cd app
johan@johan-desktop:~/angular-phonecat/app$ ls
css img index.html js partials phones
johan@johan-desktop:~/angular-phonecat/app$ sudo npm install
[sudo] password for johan:
npm WARN cannot run in wd angular-phonecat@0.0.0 bower install (wd=/home/johan/angular-phonecat)
johan@johan-desktop:~/angular-phonecat/app$
正如您所看到的,它拒绝在/ app /中创建我需要的bower_components文件夹。如何解决这个问题?我不是ubuntu专家。
编辑:本教程假设bower在我的工作文件夹中创建了这个文件夹:
<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css">
<link rel="stylesheet" href="css/app.css">
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-route/angular-route.js"></script>
正如您在上面的控制台中看到的那样,ubuntu拒绝创建该文件夹。如何让ubuntu创建该文件夹?
edit2:angular-ui-router与angular-router不同,所以现在我的解决方法完美无缺。但我仍然对/ bower_components /文件夹感兴趣。
答案 0 :(得分:3)
当您无法写入目录或文件时,您将面临权限问题,这是由于错误的所有者处理文件造成的。
检查您的应用文件夹是否归您所有(在我们的情况下是您,&#39; johan&#39;)
使用app文件夹的父级命令ls -l
,检查您是否拥有该文件。
如果您不是该文件的所有者,请使用以下命令获取文件的所有权
chown -R johan:johan app
注意:这是此方案的简易解决方案,因为主目录应归用户所有。 不要更改系统文件夹或文件的所有权,它们会导致复杂的问题。
答案 1 :(得分:0)
我有同样的问题,但我解决了。我不知道,为什么角度教程(phonecat)中没有这些信息,但这可能有所帮助。
全球安装:
sudo npm install -g bower
然后转到您的项目文件夹:
cd .../angular-phonecat
直接安装:
bower install
所有必要的目录必须到位。