본문 바로가기

카테고리 없음

Firebase Node deploy 에러 해결방법 총정리

반응형

이제 막 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",  //공백과 ( . ) 제거

 

반응형