1

我目前正在学习角度,现在我正在使用谷歌的官方角度教程。困扰我的一件事是我无法在我的工作项目文件夹中创建 bower_components。我通过提供指向引导程序和角度的 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/ 文件夹感兴趣。

4

2 回答 2

3

当您无法写入目录或文件时,您将面临权限问题,这是由于错误的所有者处理文件而导致的。

检查您的应用文件夹是否归您所有(在我们的例子中是您,'johan')

使用ls -l来自应用程序文件夹父级的命令并检查您是否拥有该文件。如果您不是文件的所有者,请使用以下命令获取文件的所有权

chown -R johan:johan app

注意:对于这种情况,这是一个恰当的解决方案,因为主目录应该归用户所有。不要更改系统文件夹或文件的所有权,它们会导致复杂的问题。

于 2014-07-08T10:24:03.673 回答
0

我有同样的问题,但我解决了。我不知道,为什么角度教程(phonecat)中没有这些信息,但这可能会有所帮助。

全局安装:

sudo npm install -g bower

然后转到您的项目文件夹:

cd .../angular-phonecat

并直接安装:

bower install

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

于 2015-09-11T12:59:56.243 回答