はじめに
firebase functionを使えるようにした際、知らず知らずにESLintを有効にしてしまっていた。今回は対処した際の方法を紹介。
問題
firebase deploy === Deploying to 'auth-xxx'... i deploying database, functions, hosting Running command: npm --prefix "$RESOURCE_DIR" run lint > functions@ lint /Users/coco/Documents/firebase-auth/functions > eslint . /Users/coco/Documents/firebase-auth/functions/index.js 31:7 error Expected return with your callback function callback-return 38:24 warning Use path.join() or path.resolve() instead of + to create paths no-path-concat ✖ 2 problems (1 error, 1 warning) npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! functions@ lint: `eslint .` npm ERR! Exit status 1 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 ERR! A complete log of this run can be found in: npm ERR! /Users/coco/.npm/_logs/2019-12-10T15_36_22_429Z-debug.log Error: functions predeploy error: Command terminated with non-zero exit code1 darkenagy:firebase-auth coco$ cat /Users/coco/.npm/_logs/2019-12-10T15_36_22_429Z-de
ESLintで引っかかっているようだ。
ふりかえり
そもそも、本当にESLintを有効にしたんだっけ。。
どのようにfirebase functionを有効にしたか振り返る。
firebase init functions ######## #### ######## ######## ######## ### ###### ######## ## ## ## ## ## ## ## ## ## ## ## ###### ## ######## ###### ######## ######### ###### ###### ## ## ## ## ## ## ## ## ## ## ## ## #### ## ## ######## ######## ## ## ###### ######## You're about to initialize a Firebase project in this directory: /Users/coco/Documents/firebase-auth Before we get started, keep in mind: * You are initializing in an existing Firebase project directory === Project Setup First, let's associate this project directory with a Firebase project. You can create multiple project aliases by running firebase use --add, but for now we'll just set up a default project. i .firebaserc already has a default project, using auth-xxx. === Functions Setup A functions directory will be created in your project with a Node.js package pre-configured. Functions can be deployed with firebase deploy. ? What language would you like to use to write Cloud Functions? JavaScript ? Do you want to use ESLint to catch probable bugs and enforce style? Yes ✔ Wrote functions/package.json ✔ Wrote functions/.eslintrc.json ✔ Wrote functions/index.js ✔ Wrote functions/.gitignore ? Do you want to install dependencies with npm now? Yes > protobufjs@6.8.8 postinstall /Users/coco/Documents/firebase-auth/functions/node_modules/protobufjs > node scripts/postinstall npm notice created a lockfile as package-lock.json. You should commit this file. added 344 packages from 245 contributors and audited 869 packages in 11.579s found 0 vulnerabilities i Writing configuration info to firebase.json... i Writing project information to .firebaserc... ✔ Firebase initialization complete! ╭───────────────────────────────────────────╮ │ │ │ Update available 7.8.1 → 7.9.0 │ │ Run npm i -g firebase-tools to update │ │ │ ╰───────────────────────────────────────────╯
しっかりESLintを有効にしてた。
現在の設定を確認
firebase.jsonを確認する
cat firebase.json { "database": { "rules": "database.rules.json" }, "hosting": { "public": "public", "rewrites": [ { "source": "**", "function": "firebaseAuth" } ], "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ] }, "functions": { "predeploy": [ "npm --prefix \"$RESOURCE_DIR\" run lint" ] } }
黄色の箇所を削除し、再度“` firebase deploy“`を行うと、ESlintが行われずdeployされる。