
express 무지랭이가 서버가 필요해서 급하게 nextJS에 커스텀 서버로 express를 사용하게 됐다. 더듬더듬 따라가며 정상적으로 서버를 띄우기까지 마주한 오류 해결 과정...
ts를 사용할거라 nodemone에 ts-node까지 설치하고 tsconfig.server.json, server.ts까지 작성한 후 서버를 구동했는데 마주한 오류.
"scripts": {
"dev": "nodemon --watch '*.tsx' --exec 'ts-node' --project tsconfig.server.json server/server.ts",
},
TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts"

에러 문장으로 구글링해보니 같은 문제를 겪은 사람들도 많았고 해결 방법들도 다양했다.
# tsconfig.json
"ts-node": {
"esm": true
}
tsconfig.json에 위 코드를 추가한다.
# package.josn
"scripts": {
"dev": "nodemon --exec node --loader ts-node/esm server/server.ts",
},
서버 시작 명령어에 --loader를 추가하고 ts-node 뒤에 /esm을 추가한다.

산 하나 넘으니 강이 하나 나온다.
next.config.js가 인식되지 않는단다.
https://nextjs.org/docs/messages/next-config-error
node를 lts 버전으로 설치하면 해결된다는 글을 봤다.
$ sudo npm install -g n
$ sudo n stable
$ node -v
노드 버전을 20.x.x에서 18.18.0으로 낮췄다.

하지만 해결되지 않았다...
일단 js로 진행하기로 했다. 서버를 일단 띄우고 후에 바꾸기로...
// server.js
// const dev = process.env.NODE_ENV === "development";
const dev = process.env.NODE_ENV !== "production";
그리고 server.js에서 노드 환경을 위와 같이 정해줬더니 정상적으로 서버가 돌아가기 시작했다.


postcss.config.js도 확장자를 cjs로 바꾸라기래 바꿨더니 이제 완전히 정상적으로 돌아가기 시작했다.
프론트엔드로 개발을 시작한다해도 필연적으로 백엔드 서버가 필요해지는 것 같다. 일단 급한 불은 껐고👩🏻🚒, 이 김에 express 공부를 해봐야겠다!