在使用Bower安装时出现了权限错误。

17
每次我尝试使用Bower安装东西时,都会出现类似于权限错误的提示信息,就像这样:
Andreass-MacBook-Air:openMedia Andreas$ bower install jquery
/usr/local/lib/node_modules/bower/node_modules/configstore/index.js:56
            throw err;
                  ^
Error: EACCES, permission denied '/Users/Andreas/.config/configstore/bower-github.yml'
You don't have access to this file.

at Error (native)
at Object.fs.openSync (evalmachine.<anonymous>:500:18)
at Object.fs.readFileSync (evalmachine.<anonymous>:352:15)
at Object.create.all.get (/usr/local/lib/node_modules/bower/node_modules/configstore/index.js:34:29)
at Object.Configstore (/usr/local/lib/node_modules/bower/node_modules/configstore/index.js:27:44)
at readCachedConfig (/usr/local/lib/node_modules/bower/lib/config.js:22:23)
at defaultConfig (/usr/local/lib/node_modules/bower/lib/config.js:11:24)
at Object.<anonymous> (/usr/local/lib/node_modules/bower/lib/index.js:40:32)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
Andreass-MacBook-Air:openMedia Andreas$ 

我想这可能有一个简单的解决方案。但这是我第一次使用Bower。提前感谢。

4个回答

53

尝试使用sudo吗?

sudo bower install --allow-root
sudo bower install jquery

另一个解决方案是更改 configstore 文件夹的 chown

sudo chown -R Andreas:Andreas /Users/Andreas/.config/configstore/
bower init
bower install jquery

如果eaccess错误更多,请将chown扩展到您的整个主文件夹


第一个方法有效,但是当我在CodeKit中遇到一些Bower错误时,使用sudo并不能解决所有问题。然而,更改configstore的chown权限确实解决了我的问题!非常感谢Aljoscha! - Trains712
2
第二个解决方案是最好的。 chown -R <your_user_here>. ~/.config/configstore - TeChn4K
2
您还可以使用用户别名:sudo chown -R $USER ~/.config,sudo chown -R $USER ~/.cache。 - Liko
2
如果你想要正确地管理系统,sudo 总是一个不好的选择,因为它会导致更多的权限错误。 - blamb

17

以下是修复方法,请运行下面的命令,应该能够解决问题。

sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config

@f-society,不好意思我很无知,请问您能解释一下在哪里运行这些命令吗?我正在使用项目根目录下的命令提示符,但它提示“sudo”不是内部或外部命令。 - Paul
你使用的是哪个操作系统? sudo 是一个 Unix 特定的命令,Windows 不支持。如果你正在尝试在 Windows 机器上安装 bower,我建议使用 git windows bash,它提供了 BASH 模拟用于从命令行运行 Git、图形用户界面以及 Shell 集成。 - f-society

3

修改json bower配置文件.bowerrc,文件内容如下:

{
    "directory": "www/lib"
}

看起来像

{
    "directory": "www/lib",
    "allow_root": true
}

-1

你可以直接复制粘贴到你的终端上

sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接