Firebase 기능을 배포하는 동안 ESLint 오류가 발생했습니다.
파이어베이스 기능을 배치하려고 했지만 ESLint에 문제가 생겨 계속 실패하고 있습니다.저도 구글에서 답을 검색해 보았지만 제가 보는 모든 것은 저에게 그리스어입니다.
저도 이것과 이 답변을 우연히 발견했지만 제 시나리오에는 해당되지 않는 것 같습니다.
내 기능
// // 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 npm@5.6.0
3 info using node@v9.5.0
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
}
제발, 내가 뭘 잘못하고 있는 거지?
내가 당신의 프로젝트가 이 상태에 이르렀다는 것을 상상할 수 있는 유일한 방법은 프로젝트 생성 시 npm이 종속성을 설치하는 것을 거부하는 것입니다.그래서 당신이 이것을 묻는다면,
지금 npm으로 종속성을 설치하시겠습니까?
당신은 '아니오'라고 대답했을 것입니다.이렇게 하면 eslint 패키지가 설치되지 않고 오류가 표시됩니다.
그렇지 않으면, 당신은 아래에서 eslint 설치된 패키지를 삭제했을 수 있습니다.node_modules
어떻게든.실행할 수 있습니다.npm install
에서functions
아래에 필요한 모든 항목을 다시 만드는 폴더node_modules
.
쉬운 해결책.당신의 소포 안에.json 거스름
> "lint": "eslint ."
로.
"lint": "eslint",
npm을 다시 설치한 것과 같은 문제가 있었습니다.
npm install npm -g
그런 다음 Firebase 기능을 다시 시작합니다(모든 파일을 덮어쓰고 EsLine 디버깅을 설치하고 모든 종속성을 설치해야 합니다). 예, 모든 요청에 대해 Y를 누릅니다.
Firebase init functions
그리고 다시 구축한 후에는 모든 것이 정상적으로 작동했습니다.
Firebase deploy
파이어베이스 프로젝트를 배포하는 동안 "%REASOURCE_DIR%" 접두사 "%REASOURCE_DIR%" run init type 오류를 발견한 경우 파이어베이스에서 일부 코드를 편집해야 합니다.json 파일.예는 다음과 같습니다.
이봐요, 당신은 단지 그때 진술에서 뭔가를 반환하면 됩니다.
let params = {...};
var firestore = admin.firestore();
var dbRef = firestore.collection('your-collection-name');
dbRef.add(params)
.then((docRef) => {
console.log("doc added with ID ", docRef.id);
return null
})
.catch((err) => {
console.error("Error in adding document ", err);
});
저도 비슷한 오류가 발생했습니다.Firebase 프로젝트를 저장하는 디렉토리의 이름이 Firebase/데이터베이스라는 것을 알게 되었습니다./를 제거하고 디렉터리 이름을 firebase-database로 만들었습니다.그게 누군가에게 도움이 되길 바랍니다.
Windows에서 ESLINT와 비슷한 문제가 있었습니다.
방금 firebase deploy 명령을 호출하기 위해 npm run deploy를 망쳤습니다.이 호출을 통해 "firebase deploy" 명령 실행 외부의 오류를 볼 수 있었으며 Eslint가 파일과 CLRF 충돌이 있는 것을 보고 재미있었습니다.
그리고 나서 저는 npm 런 린트를 실행했습니다. -- 수정했습니다. 그리고 그 문제들은 해결되었습니다.
:D
2023년 현재에도 저는 이 문제에 직면해 있습니다.이 문제는 사람들이 프로젝트 구성/시작 시 기본 npm 설치를 건너뛰어서 발생하는 것이 사실입니다.하지만 그 자리에서 고치기보다는 모든 의존성을 다시 설치하는 것이 제게는 너무 지나친 것처럼 보입니다.당신은 eslint를 놓쳤기 때문에, 당신은 당신의 project.json 파일에 eslint를 추가한 다음 종속성을 설치해야 하며, 당신은 가도 좋습니다.
제 경우에는 두 가지만 해야 했습니다.
- 더하다
eslint
..json.
"scripts": {
...
"lint": "eslint"
},
- 의 신의에서.
functions
폴더를 누릅니다.실행 명령:
npm init @eslint/config
다음 그럼실을 실행합니다.firebase deploy
즉, 그것입니다.
이전 명령이 성공적으로 완료된 경우 오류가 발생하지 않아야 합니다.
언급URL : https://stackoverflow.com/questions/48602833/eslint-error-while-trying-to-deploy-firebase-functions
'programing' 카테고리의 다른 글
안드로이드:layout_weight는 무엇을 의미합니까? (0) | 2023.06.05 |
---|---|
R 마크다운, Knitr, Pandoc 및 북다운의 관계 (0) | 2023.06.05 |
위치: iPad 및 iPhone에서 fixed가 작동하지 않습니다. (0) | 2023.06.05 |
일식 작업 공간에서 문자열 검색 (0) | 2023.06.05 |
규칙을 사용하여 시간 간격 가져오기 (0) | 2023.06.05 |