Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ESLint error while trying to deploy firebase functions

I tried deploying a firebase functions but it keeps failing due to some issue with ESLint. I have also tried googling the answer but everything I am seeing is all Greek to me.

I have also stumbled on this and this answer but it appears they're not applicable to my scenario.

My Function

// // Create and Deploy Your First Cloud Functions // // https://firebase.google.com/docs/functions/write-firebase-functions // // exports.helloWorld = functions.https.onRequest((request, response) => { //  response.send("Hello from Firebase!"); // });   //import firebase functions modules const functions = require("firebase-functions"); //import admin module const admin = require("firebase-admin"); admin.initializeApp(functions.config().firebase);  // Listens for new messages added to messages/:pushId exports.pushNotification = functions.database.ref("/Message").onWrite( event => {     //  Grab the current value of what was written to the Realtime Database.     var valueObject = event.data.val();     // Log the event     console.log("Push notification event triggered for " + valueObject.title);      //if(valueObject.title != null) {       //valueObject.photoUrl= "Sent you a photo!";    // }    // Create a notification     const payload = {         data: {             body:valueObject.body,             imgUrl: valueObject.imgUrl,             postUrl: valueObject.postUrl,             title: valueObject.title         },     };    //Create an options object that contains the time to live for the notification and the priority     const options = {         priority: "high",         timeToLive: 60 * 60 * 24     };       return admin.messaging().sendToTopic("Posts", payload, options); }); 

Log

0 info it worked if it ends with ok 1 verbose cli [ '/home/xoxo/.nvm/versions/node/v9.5.0/bin/node', 1 verbose cli   '/home/xoxo/.nvm/versions/node/v9.5.0/bin/npm', 1 verbose cli   '--prefix', 1 verbose cli   '/home/xoxo/Android/Projects/FirebaseFunctions/functions', 1 verbose cli   'run', 1 verbose cli   'lint' ] 2 info using [email protected] 3 info using [email protected] 4 verbose run-script [ 'prelint', 'lint', 'postlint' ] 5 info lifecycle functions@~prelint: functions@ 6 info lifecycle functions@~lint: functions@ 7 verbose lifecycle functions@~lint: unsafe-perm in lifecycle true 8 verbose lifecycle functions@~lint: PATH: /home/xoxo/.nvm/versions/node/v9.5.0/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/xoxo/Android/Projects/FirebaseFunctions/functions/node_modules/.bin:/home/xoxo/.nvm/versions/node/v9.5.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin 9 verbose lifecycle functions@~lint: CWD: /home/xoxo/Android/Projects/FirebaseFunctions/functions 10 silly lifecycle functions@~lint: Args: [ '-c', 'eslint .' ] 11 info lifecycle functions@~lint: Failed to exec lint script 12 verbose stack Error: functions@ lint: `eslint .` 12 verbose stack spawn ENOENT 12 verbose stack     at ChildProcess.<anonymous> (/home/xoxo/.nvm/versions/node/v9.5.0/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:48:18) 12 verbose stack     at ChildProcess.emit (events.js:160:13) 12 verbose stack     at maybeClose (internal/child_process.js:943:16) 12 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:220:5) 13 verbose pkgid functions@ 14 verbose cwd /home/xoxo/Android/Projects/FirebaseFunctions 15 verbose Linux 4.13.0-32-generic 16 verbose argv "/home/xoxo/.nvm/versions/node/v9.5.0/bin/node" "/home/xoxo/.nvm/versions/node/v9.5.0/bin/npm" "--prefix" "/home/xoxo/Android/Projects/FirebaseFunctions/functions" "run" "lint" 17 verbose node v9.5.0 18 verbose npm  v5.6.0 19 error file sh 20 error code ELIFECYCLE 21 error errno ENOENT 22 error syscall spawn 23 error functions@ lint: `eslint .` 23 error spawn ENOENT 24 error Failed at the functions@ lint script. 24 error This is probably not a problem with npm. There is likely additional logging output above. 25 verbose exit [ 1, true ] 

Console Output

xoxo@xo9:~/Android/Projects/FirebaseFunctions$ firebase deploy  === Deploying to 'testproject-a1bda'...  i  deploying functions Running command: npm --prefix $RESOURCE_DIR run lint  > functions@ lint /home/xoxo/Android/Projects/FirebaseFunctions/functions > eslint .  sh: 1: eslint: not found npm ERR! file sh npm ERR! code ELIFECYCLE npm ERR! errno ENOENT npm ERR! syscall spawn npm ERR! functions@ lint: `eslint .` npm ERR! spawn ENOENT npm ERR!  npm ERR! Failed at the functions@ lint script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm WARN Local package.json exists, but node_modules missing, did you mean to install?  npm ERR! A complete log of this run can be found in: npm ERR!     /home/xoxo/.npm/_logs/2018-02-03T22_35_55_608Z-debug.log  Error: functions predeploy error: Command terminated with non-zero exit code1 

Package.js

{   "name": "functions",   "description": "Cloud Functions for Firebase",   "scripts": {     "lint": "./node_modules/.bin/eslint .",     "serve": "firebase serve --only functions",     "shell": "firebase experimental:functions:shell",     "start": "npm run shell",     "deploy": "firebase deploy --only functions",     "logs": "firebase functions:log"   },   "dependencies": {     "firebase-admin": "~5.8.1",     "firebase-functions": "^0.8.1"   },   "devDependencies": {     "eslint": "^4.12.0",     "eslint-plugin-promise": "^3.6.0"   },   "private": true } 

enter image description here

Please what am I doing wrong?

like image 948
X09 Avatar asked Feb 03 '18 22:02

X09


2 Answers

The only way I can imagine that your project got into this state is if you refused to allow npm to install dependencies at the time of project creation. So when you asks you this:

? Do you want to install dependencies with npm now?

You may have answered 'No'. This would prevent the eslint package from being installed, and you would see that error.

Otherwise, you may have deleted the eslint installed package under node_modules somehow. You can run npm install from the functions folder to recreate everything needed under node_modules.

like image 189
Doug Stevenson Avatar answered Sep 28 '22 01:09

Doug Stevenson


Easy fix. Inside your package.json change

> "lint": "eslint ." 

to

"lint": "eslint", 
like image 35
Saurabh Kumar Avatar answered Sep 28 '22 00:09

Saurabh Kumar