【问题标题】:Ubuntu cant create bower_components folderUbuntu 无法创建 bower_components 文件夹
【发布时间】:2014-07-08 10:11:22
【问题描述】:

我目前正在学习 Angular,现在我正在使用 google 的官方 Angular 教程。困扰我的一件事是我无法在我的工作项目文件夹中创建 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/ 文件夹感兴趣。

【问题讨论】:

  • 与 angularJS 无关

标签: ubuntu bower bower-install


【解决方案1】:

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

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

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

chown -R johan:johan app

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

【讨论】:

  • 谢谢,但我无法访问不存在的文件夹。问题是 ubuntu 没有创建该文件夹,但是当我根据教程键入 npm install 时应该创建该文件夹。如您在上面的控制台中看到的,创建文件夹时出错--> Error: EACCES, mkdir '/home/johan/angular-phonecat/app/bower_components'
  • @sheez 在终端中使用“ls -l”并检查应用文件夹的所有权。如果所有权不是 johan,请使用“chown -R johan:johan app”,然后尝试运行 npm install
【解决方案2】:

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

全局安装:

sudo npm install -g bower

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

cd .../angular-phonecat

直接安装:

bower install

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

【讨论】:

    猜你喜欢
    • 2022-07-06
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 2017-09-02
    • 1970-01-01
    • 2016-08-18
    • 2017-06-15
    • 1970-01-01
    相关资源
    最近更新 更多