Ubuntu无法创建bower_components文件夹

时间:2014-07-08 10:11:23

标签: ubuntu bower bower-install

我正在学习角度,现在我正在使用谷歌的官方角度教程。困扰我的一件事是我无法在我工作的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 /文件夹感兴趣。

2 个答案:

答案 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

所有必要的目录必须到位。