【问题标题】:firebase-tools error: EACCES: permission deniedfirebase-tools 错误:EACCES:权限被拒绝
【发布时间】:2016-10-30 06:30:25
【问题描述】:

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

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

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

错误

/usr/local/lib/node_modules/firebase-tools/node_modules/configstore/index.js:53 抛出错误; ^

错误:EACCES:权限被拒绝,打开“/Users/mowzer/.config/configstore/update-notifier-firebase-tools.json” 您无权访问此文件。

出现错误(本机)
在 Object.fs.openSync (fs.js:549:18)
在 Object.fs.readFileSync (fs.js:397:15)
在 Object.create.all.get (/usr/local/lib/node_modules/firebase-tools/node_modules/configstore/index.js:34:26)
在 Object.Configstore (/usr/local/lib/node_modules/firebase-tools/node_modules/configstore/index.js:27:44)
在新的 UpdateNotifier (/usr/local/lib/node_modules/firebase-tools/node_modules/update-notifier/index.js:34:17)
在 module.exports (/usr/local/lib/node_modules/firebase-tools/node_modules/update-notifier/index.js:123:23)
在对象。 (/usr/local/lib/node_modules/firebase-tools/bin/firebase:5:48)
在 Module._compile (module.js:409:26)
在 Object.Module._extensions..js (module.js:416:10)

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

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

(我使用的是 Mac OSX Yosemite v10.10.5 和 firebase-tools v3.0.3)

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

错误:输入的凭据不正确。

我尝试了以下解决方案。

我试图删除问题文件然后重新安装firebase-tools。

终端.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

【问题讨论】:

  • 这很平庸,但是...您尝试过使用 sudo 吗?
  • @DevidFarinelli:是的。当我执行sudo firebase deploy 时,出现以下错误:错误:输入的凭据不正确。

标签: unix firebase npm firebase-hosting firebase-tools


【解决方案1】:

详细介绍@jacobawenger 提供的解决方案:

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

终端.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)

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 执行“sudo npm install -g firebase-tools”解决了这个问题(对我来说)
    • 使用“sudo”并不能解决任何问题。它只会以 root 身份执行 npm,这绝对不是修复。由于 npm 以 root 身份执行,许多项目都被破坏了。真正的解决方案是解决权限问题。
    【解决方案3】:

    我遇到了同样的问题,我通过对 configstore 目录中的所有文件执行 chmod 755 来修复它

    【讨论】:

      【解决方案4】:

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

      【讨论】:

      • 被否决,因为在某些事情不起作用时简单地使用 sudo 不仅会适得其反,而且对许多系统来说也是危险的。修复错误设置的权限将真正解决OP的问题。
      【解决方案5】:

      尝试运行命令为

      苏根

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

      【讨论】:

        【解决方案6】:

        简单的方法:

        备份您的计算机。

        如果您有权限问题,请先运行此

         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
        

        【讨论】:

          【解决方案7】:

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

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

          【讨论】:

            【解决方案8】:

            在命令之前添加sudo 应该可以工作

            sudo npm -g i firebase-tools
            

            【讨论】:

              【解决方案9】:

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

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

              【讨论】:

              • 谢谢我的 Yash 的更正。为速写道歉。
              猜你喜欢
              • 2016-11-14
              • 2021-07-22
              • 2019-10-28
              • 2018-06-08
              • 2018-03-25
              • 1970-01-01
              • 1970-01-01
              • 2017-12-29
              • 2018-04-20
              相关资源
              最近更新 更多