[문제해결] Heroku 배포 오류

JooSehyun·2023년 5월 4일
0

문제해결

목록 보기
8/15
post-thumbnail

[문제해결]

Heroku 배포 오류


git push heroku main(master) push 오류

error : [remote rejected] main -> main (pre-receive hook declined)

  Some possible problems:
       
       - Node version not specified in package.json
         https://devcenter.heroku.com/articles/nodejs-support#specifying-a-node-js-version
       
       Love,
       Heroku
       
 !     Push rejected, failed to compile Node.js app.
 !     Push failed

이런 오류가 뜨는데 검색결과 여러 방법이 있는듯 했지만 일단은 간단한 방법을 사용했다.
package-lock.json 파일을 다른곳으로 백업해두고 지우면 heroku에 저 오류가 뜨지않고 push된다.


server.js 수정

const jsonServer = require("json-server");
const server = jsonServer.create();
const router = jsonServer.router("./db.json");
const middlewares = jsonServer.defaults({ static: "./dist" });
const port = process.env.PORT || 3000;
server.use(middlewares);
server.use(router);
server.listen(port);

meddlewaresstaticreact 기준인 build 폴더로되어 있었다.

  • vue = dist
  • react = build

로 바꿔준다.


Heroku Build Failed: Node version not specified in package.json

Node.js 버전 지정 오류

heroku 에 build를 하고나면 node version error가 뜬다. node 버전을 지정하지 않아서 생긴오류인듯 하다.

이 오류는 터미널에서도 친절하게 홈페이지 자료를 링크걸어준다.

url : https://devcenter.heroku.com/articles/nodejs-support#specifying-a-node-js-version

$ node --version 을 터미널에 쳐서 버전을 확인한다.

결과 예) : v18.7.0

먼저 애플리케이션이 빌드팩을 사용하고 있는지 확인합니다 $ heroku/nodejs.

heroku buildpacks
=== issuetriage Buildpack URLs
1. heroku/nodejs

노드버전을 package.json에서 추가 해준다.

"name": "todolist",
  "version": "0.1.0",
  "private": true,
  "engines": {
    "node": "20.x" 👈
  },

0개의 댓글