firebase-tools error: EACCES: permission denied

firebase-tools error: EACCES: permission denied

我正在尝试部署我的网络应用程序的 Firebase 托管。

在命令行中,当我键入 firebase deploy 时,出现以下错误。

注意:firebase deploy只是一个例子。所有 firebase 命令都会出现相同的错误。 (例如,firebase --helpfirebase -vfirebase loginfirebase logout 等)

错误

/usr/local/lib/node_modules/firebase-tools/node_modules/configstore/index.js:53 throw err; ^

Error: EACCES: permission denied, open '/Users/mowzer/.config/configstore/update-notifier-firebase-tools.json' You don't have access to this file.

at Error (native)
at Object.fs.openSync (fs.js:549:18)
at Object.fs.readFileSync (fs.js:397:15)
at Object.create.all.get (/usr/local/lib/node_modules/firebase-tools/node_modules/configstore/index.js:34:26)
at Object.Configstore (/usr/local/lib/node_modules/firebase-tools/node_modules/configstore/index.js:27:44)
at new UpdateNotifier (/usr/local/lib/node_modules/firebase-tools/node_modules/update-notifier/index.js:34:17)
at module.exports (/usr/local/lib/node_modules/firebase-tools/node_modules/update-notifier/index.js:123:23)
at Object. (/usr/local/lib/node_modules/firebase-tools/bin/firebase:5:48)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)

到目前为止我尝试过的所有操作(包括每个 CLI firebase 指令)都因无法访问而拒绝我。

我能做什么?我应该尝试什么?

(我在 Mac OSX Yosemite v10.10.5 和 firebase-tools v3.0.3)

编辑:当我执行 sudo firebase deploy 时,出现以下错误。

Error: The entered credentials were incorrect.

我尝试了以下解决方案。

我尝试删除有问题的文件然后重新安装 firebase-tools

Terminal.sh
cd
cd .config/configstore
# Delete problematic files
rm firebase-tools.json
override rw-------  root/staff for firebase-tools.json? y
rm update-notifier-firebase-tools.json
override rw-------  root/staff for update-notifier-firebase-tools.json? y
# Reinstall firebase-tools
cd
sudo npm install -g firebase-tools

然后...

cd path/to/directory
cd firebase deploy

现在这个文件产生错误:

/usr/local/lib/node_modules/firebase-tools/node_modules/configstore/index.js:53

cd /usr/local/lib/node_modules/firebase-tools/node_modules/configstore

扩展@jacobawenger 提供的解决方案的更多细节:

The most robust solution is to install Homebrew and let Homebrew manage the npm package installation for you.

Terminal.sh
# EACCESS error reference: https://docs.npmjs.com/getting-started/fixing-npm-permissions
# Install Homebrew # Reference: brew.sh # Ensures NPM is installed properly to avoid EACCESS errors
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# Install npm # Reference: brew.sh
brew install node
# Install firebase-tools
npm install -g firebase-tools # Non-recurring task # Also updates to newest version (see notice)

这看起来像是您安装了 npm 的模块的权限问题。这是很多开发人员 运行 感兴趣的东西,而 npm 实际上有 some documentation on how to resolve it。完成后,再试一次(您可能需要重新安装 firebase-tools),一切都会正常。

我遇到了同样的问题,我通过对 configstore 目录

中的所有文件执行 chmod 755 来修复它

我通过在命令行开头添加sudo来修复它!

尝试 运行 命令作为

su root

如果您使用的是 ubuntu。 对我来说,只使用 sudo,没有用。 我正在使用 Ubuntu 18.x.x 并尝试通过 npm

安装 firebase

简单方法:

备份您的计算机。

如果您有权限问题 运行 首先这个

 sudo chown -R $USER /usr/local/lib/node_modules

然后第二个

1)-  mkdir ~/.npm-global
2)-  npm config set prefix '~/.npm-global'
3)-  export PATH=~/.npm-global/bin:$PATH
4)-  source ~/.profile
5)-  npm install -g jshint
6)-  NPM_CONFIG_PREFIX=~/.npm-global

您可以尝试使用 --unsafe-perm 标志。就像这样:

sudo npm install -g firebase-tools --unsafe-perm

在它应该起作用的命令之前添加 sudo

sudo npm -g i firebase-tools

对我有用的基本上是使用节点版本管理器重新安装节点。 为此,您只需 install latest node js version this way

就我而言,在此回复时,Node JS 的 LTS 版本是 v14.17.0,因此 nvm use 14.17.0 现在尝试重新 运行 构建。