반응형
이제 막 node 에서 firebase의 cloud funtion을 사용하려고 설치를 한 후
테스트를 위해 실행을 했지만
Error: functions predeploy error: Command terminated with non-zero exit code1
라는 오류가 발생했습니다
stack overflow나 구글링을 통해서 해결했습니다
여러가지 해결방법이 있겠지만
우선 윈도우를 사용하시는 분이라면 firebase.json 을 파일설정을 확인해보신 뒤에 만약 위에것처럼 Linux 계열 명칭으로 되어있는지 확인 하신뒤에 맞다면 수정해주시면 됩니다
{
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint"
//"npm --prefix \"%RESOURCE_DIR%" run lint" 폴더명 변경
]
}
}
하지만 저는 맥을 사용하고 있기 때문에 관련이 없었습니다
또 혹시 firebase cloud funtion을 다운 받으실때
Do you want to install dependencies with npm now?
이 질문을 기억하시나요? 만약 여기서 N을 누르셨다면 eslint패키지가 설치되지 않았을 수 있습니다!
"devDependencies": {
"eslint": "^8.9.0",
"eslint-config-google": "^0.14.0",
"firebase-functions-test": "^0.2.0"
},
package.json내부에 의존성이 추가되어있지 않다면
다시 다운받으시면서 설정을 해주시고 파일 덮어쓰기를 하신다면 정 정상 작동을 하실겁니다!
저는 Yes를 했기에 이 방법도 효과가 없었습니다
마지막으로 제가 해결한 방법입니다
package.json 파일 내부로 이동하시면
"scripts": {
"lint": "eslint .",
"serve": "firebase emulators:start --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
여기서 이상한부분이 있습니다
"lint": "eslint .",
바로 이부분인데요 이 부분을 수정해주니 정상작동이 되었습니다!
"lint": "eslint", //공백과 ( . ) 제거
반응형