当我尝试使用yeoman
创建一个webapp时,我得到了这个。
/usr/local/lib/node_modules/yo/node_modules/insight/node_modules/configstore/configstore.js:66
throw err;
^
Error: EACCES, permission denied '/root/.config/configstore/insight-yo.yml'
You don't have access to this file.
at Object.fs.openSync (fs.js:436:18)
at Object.fs.writeFileSync (fs.js:975:15)
at Object.create.all.set (/usr/local/lib/node_modules/yo/node_modules/insight/node_modules/configstore/configstore.js:56:8)
at Object.Configstore (/usr/local/lib/node_modules/yo/node_modules/insight/node_modules/configstore/configstore.js:19:11)
at new Insight (/usr/local/lib/node_modules/yo/node_modules/insight/lib/insight.js:23:34)
at process.<anonymous> (/usr/local/lib/node_modules/yo/node_modules/insight/lib/push.js:11:16)
at process.emit (events.js:98:17)
at handleMessage (child_process.js:322:10)
at Pipe.channel.onread (child_process.js:349:11)
我用谷歌搜索,我尝试了以下的事情,但它没有帮助:
chown root /root/.config/configstore/insight-yo.yml
chown myusername /root/.config/configstore/insight-yo.yml
安装npm-sudo-fix
并运行它,但没有运气。
我在Debian Wheezy,并且有npm 1.4.4。
答案 0 :(得分:11)
我遇到了同样的问题。我运行下面的命令,它解决了我的问题:
mkdir -p /root/.config/configstore
chmod g+rwx /root /root/.config /root/.config/configstore
答案 1 :(得分:3)
同样的问题发生在我身上,我在root模式下用户#。我只是回到普通用户$并且它有效。我正在使用Zorin OS
答案 2 :(得分:1)
我能够通过运行来解决这个问题:
echo prefix = ~/.node >> ~/.npmrc
和
export PATH=$HOME/.node/bin:$PATH
这里的解释:
Error installing yeoman
What does `echo prefix = ~/.node >> ~/.npmrc` mean?
npm / yeoman install generator-angular without sudo
答案 3 :(得分:1)
我刚刚在Windows中修复了它。我已经完成了三件事,其中一件已经解决了,我不确定。
以管理员身份运行cmd提示。
takeown /?
此命令相当于chown
(linux)但对于windows。
cacls -cacls /E /T /G :F
只需进入$USER
/Users/calvin/.config/configstore/
并将文件取消隐藏。
它对我来说就像魅力一样。很多天以来我一直试图解决这个问题。
答案 4 :(得分:1)
我在Ubuntu上构建一个meanjs应用程序时遇到了同样的问题,我使用sudo
代替root
解决了这个问题:
sudo npm install -g yo generator-meanjs bower grunt
然后我可以构建应用程序,而不会再被要求输入密码:
yo meanjs
sudo允许用户在没有root登录的情况下以root身份运行,使用sudo而不是以root身份登录更安全。 sudo vs root - askubuntu
答案 5 :(得分:0)
问题在于,未授予yo使用某些nodejs模块的权限。基本上,问题与节点包经理&#34; npm&#34;的授权有关,要解决此问题首先运行此命令
sudo npm install --global yo --allow-root
答案 6 :(得分:0)
虽然chmod
command似乎最初工作,但我后来遇到了类似的错误,对于另一个文件夹。但here我发现这个解决方法也解决了这个问题:
sed -i -e '/rootCheck/d' "${NPM_CONFIG_PREFIX}/lib/node_modules/yo/lib/cli.js"
如果yo
以root身份运行,rootCheck
将降级为UID 1000(在Linux上)或501(在OS X上)。这会导致权限错误。但是在docker容器中,您可能希望以root用户身份运行,因此您没有其他选择。
升级yeoman后需要重新运行此命令。如果未定义NPM_CONFIG_PREFIX
,您可以使用:
export NPM_CONFIG_PREFIX=$(npm config get prefix)