Error deploying with firebase on npm --prefix $RESOURCE_DIR run lint

FirebaseNpmGoogle Cloud-Functions

Firebase Problem Overview


I have a fresh install of firebase tools (following this tutorial) and I'm trying to upload my first firebase function. I get this issue with the hello-world example that they initialise when you run firebase init (The only set up the functions CLI feature during the init)

If I replace $RESOURCE_DIR in firebase.json with my functions folder it works, but of course that Is bad practice and I'd like to find a proper $RESOURCE_DIR replacement that works.

PS D:\workspace\firebase-functions> firebase deploy
    
    === Deploying to 'newagent-5221d'...

i  deploying functions
Running command: npm --prefix $RESOURCE_DIR run lint
npm ERR! path D:\workspace\firebase-functions\$RESOURCE_DIR\package.json
npm ERR! code ENOENT
npm ERR! errno -4058
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open 'D:\workspace\firebase-functions\$RESOURCE_DIR\package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\dtlut\AppData\Roaming\npm-cache\_logs\2018-01-19T15_57_22_990Z-debug.log

Error: functions predeploy error: Command terminated with non-zero exit code4294963238

Firebase Solutions


Solution 1 - Firebase

Try to replace $RESOURCE_DIR with %RESOURCE_DIR% in your firebase.json file.

Multi platform solution

As seen on this post let's summarize the configuration for the different platforms you are running on:

Linux

"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint"
]

PowerShell

"predeploy": [
"npm --prefix $Env:RESOURCE_DIR run lint"
]

Cmd.exe

"predeploy": [
"npm --prefix %RESOURCE_DIR% run lint"
]

Solution 2 - Firebase

It wants to lint your cloud functions, meaning it will check your code for obvious errors like a compiled language would throw errors at compile time.

It's not necessary, you can always remove it by going into firebase.json and updating functions.predeploy to be an empty array.

  "functions": {
    "predeploy": [],
    "source": "functions" 
  }

https://stackoverflow.com/questions/8503559/what-is-linting

Solution 3 - Firebase

you can simply make your firebase.json file like this:

{
  "functions": {
    "predeploy": [
      "npm --prefix ./functions/ run lint",
      "npm --prefix ./functions/ run build"
    ]
  }
}

what I'm doing is replace $RESOURCE_DIR with hard coded path of function folder itis working nice for me

Solution 4 - Firebase

SUMMARIZING

  1. Install ESLint locally to add "devDependencies" to package.json. Run:

      `npm install eslint --save-dev`
    
  2. Workaround for Windows as stated above. Change firebase.json:

      `npm --prefix $RESOURCE_DIR run lint` to `npm --prefix %RESOURCE_DIR% run lint`
    
  3. Optionally, add the following to package.json:

      "scripts": { "lint": "eslint"} or "scripts": { "lint": "eslint.js"}
    

Solution 5 - Firebase

locate the firebase.json file and then change these lines

"npm --prefix \"$RESOURCE_DIR\" run lint",
"npm --prefix \"$RESOURCE_DIR\" run build"

to

"npm --prefix \"%RESOURCE_DIR%\" run lint",
"npm --prefix \"%RESOURCE_DIR%\" run build"

it'll work

Solution 6 - Firebase

Modify in firebase.json from "npm --prefix $RESOURCE_DIR run lint" to "npm --prefix %RESOURCE_DIR% run lint"

Solution 7 - Firebase

My problem was my node version. I got this error after installing packages with the wrong node version. I ran yarn setup with node 16 but my project uses node 14. I switched to node 14 before trying to deploy and received this error. I tried the fixes mentioned here and finally realized what my problem was. This is one of those errors which is disinformative...

Solution 8 - Firebase

This one should solve the issue without workaround

npm install -g git://github.com/firebase/firebase-tools#master

please try this installation again in ur project folder it should solve the issue.

Solution 9 - Firebase

It is working my cloud function deploy successfully

"functions": {
"predeploy": [
  "npm --prefix \"%RESOURCE_DIR%\" run lint",
  "npm --prefix \"%RESOURCE_DIR%\" run build"
],`enter code here`
"source": "functions"

Solution 10 - Firebase

side note, if you're using yarn (and not npm), you need to specify --cwd param (instead of --prefix)

firebase.json example:

{
  ...
  "functions": {
    "predeploy": [
      "yarn --cwd \"$RESOURCE_DIR\" lint",
      "yarn --cwd \"$RESOURCE_DIR\" build"
    ]
  },
  ...
}

Solution 11 - Firebase

None of the previous suggestions worked for me. So I deleted the function part of the firebase.json file as in below by only keeping the hosting part. Then, I deployed the app successfully without functions.

Then, I cd into functions from the terminal and deployed the functions by using firebase deploy --only functions

{

  "hosting": {
    "public": "build",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  }
}

Solution 12 - Firebase

Another possible issue is there are some errors in the code for example, I got this error message

  55:47  error  Expected '!==' and instead saw '!='  eqeqeq
  69:47  error  Expected '!==' and instead saw '!='  eqeqeq

After I fixed and deploy again and it work. this attached image

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionDaan LuttikView Question on Stackoverflow
Solution 1 - FirebaseKamil SvobodaView Answer on Stackoverflow
Solution 2 - FirebaseNeoView Answer on Stackoverflow
Solution 3 - FirebaseInzamam MalikView Answer on Stackoverflow
Solution 4 - FirebaseCutoutcowView Answer on Stackoverflow
Solution 5 - FirebaseAishik kirtaniyaView Answer on Stackoverflow
Solution 6 - FirebaseBhuwan MaharjanView Answer on Stackoverflow
Solution 7 - FirebasedjangodevView Answer on Stackoverflow
Solution 8 - FirebasejaideepView Answer on Stackoverflow
Solution 9 - FirebaseKapil PachoriView Answer on Stackoverflow
Solution 10 - FirebaseAdilView Answer on Stackoverflow
Solution 11 - Firebaseoğuz gürkan bilirView Answer on Stackoverflow
Solution 12 - FirebaseNonthawach ChaisaowongView Answer on Stackoverflow