5
votes

I am trying to deploy Firebase hosting of my web app.

At the command line, when I type firebase deploy, I get the following error.

Note: firebase deploy is just one example. The same error occurs for all firebase commands. (e.g., firebase --help, firebase -v, firebase login, firebase logout, etc.)

Error

/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)

Everything I have tried so far (including every CLI firebase instruction) rejects me for lack of access.

What can I do? What should I try?

(I am on a Mac OSX Yosemite v10.10.5 and firebase-tools v3.0.3)

Edit: When I do sudo firebase deploy, I get the following error.

Error: The entered credentials were incorrect.

I tried the following solution.

I tried to delete problem files then reinstall 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

Then...

cd path/to/directory
cd firebase deploy

Now this file generates the error:

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

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

9
It's banal, but...have you tried using sudo?Devid Farinelli
@DevidFarinelli: Yes. When I do sudo firebase deploy I get the following error: Error: The entered credentials were incorrect.Let Me Tink About It

9 Answers

12
votes

This looks like an issue with the permissions of modules you have npm installed. This is something lots of developers run into, and npm actually has some documentation on how to resolve it. Once you go through that, try again (you may need to re-install firebase-tools) and things should work.

10
votes

I fix it by adding sudo at the beginning of the command line!

1
votes

Expanding more detail to the solution provided by @jacobawenger:

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

# 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)
1
votes

I had the same issue, and I fixed it by doing chmod 755 on all the files in the configstore directory

1
votes

You can try using the --unsafe-perm flag. Just like this:

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

Add sudo prior to command it should work

sudo npm -g i firebase-tools
0
votes

Try run the command as

su root

if you are using ubuntu. For me, just use sudo, did not work. I'm using Ubuntu 18.x.x and I was trying install firebase through npm

0
votes

Easy Way:

Back up your computer.

if you have Permission issue run first this

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

then 2nd

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
0
votes

What worked for me was basically reinstalling the node using the node version manager. For this, you just install latest node js version this way

In my case at the point of this reply, the LTS Version of the Node JS is v14.17.0 hence nvm use 14.17.0 now try re-running the build.