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.
// // 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); });
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 ]
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
{ "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 }
Please what am I doing wrong?
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
.
Easy fix. Inside your package.json change
> "lint": "eslint ."
to
"lint": "eslint",
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With