From 96098869a8cc5949f6378e8f4e51fd25d03085bc Mon Sep 17 00:00:00 2001 From: kimilguk Date: Tue, 6 Jun 2023 13:31:22 +0900 Subject: [PATCH] =?UTF-8?q?=EC=BB=A4=EB=B0=8B4.=20=ED=8F=AC=ED=84=B8=20?= =?UTF-8?q?=EC=8B=A4=ED=96=89=20=EB=B0=A9=EB=B2=95=20ts-node=EB=A1=9C=20?= =?UTF-8?q?=EC=8B=9C=EC=9E=91=ED=95=98=EA=B2=8C=20=EB=B3=80=ED=99=94:=20?= =?UTF-8?q?=EC=8B=A4=ED=96=89=20=EC=86=8D=EB=8F=84=20=ED=96=A5=EC=83=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/portal/package.json | 2 +- frontend/portal/server/index.ts | 30 ++++++++++++++++++++++++++++ frontend/portal/tsconfig.server.json | 9 +++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 frontend/portal/server/index.ts create mode 100644 frontend/portal/tsconfig.server.json diff --git a/frontend/portal/package.json b/frontend/portal/package.json index adfa64e..d3a86a7 100644 --- a/frontend/portal/package.json +++ b/frontend/portal/package.json @@ -7,7 +7,7 @@ "npm": "6.14.7" }, "scripts": { - "dev": "next dev", + "dev": "ts-node --transpile-only --project tsconfig.server.json server/index.ts", "dev:sm": "SITE_ID=3 npm run dev", "dev:lg": "SITE_ID=2 npm run dev", "dev:smWin": "set SITE_ID=3&&npm run dev", diff --git a/frontend/portal/server/index.ts b/frontend/portal/server/index.ts new file mode 100644 index 0000000..1bbeb9d --- /dev/null +++ b/frontend/portal/server/index.ts @@ -0,0 +1,30 @@ +import { loadEnvConfig } from '@next/env' +import express, { Request, Response } from 'express' +import next from 'next' +loadEnvConfig('./', process.env.NODE_ENV !== 'production') + +const port = process.env.PORT || 3000 +const dev = process.env.NODE_ENV !== 'production' +const app = next({ dev }) +const handle = app.getRequestHandler() + +const startServer = async () => { + try { + await app.prepare() + const server = express() + + server.all('*', (req: Request, res: Response) => { + return handle(req, res) + }) + + server.listen(port, (err?: any) => { + if (err) throw err + console.log(`> Ready on localhost:${port} - env ${process.env.NODE_ENV}`) + }) + } catch (error) { + console.error(error) + process.exit(1) + } +} + +startServer() diff --git a/frontend/portal/tsconfig.server.json b/frontend/portal/tsconfig.server.json new file mode 100644 index 0000000..4871dbb --- /dev/null +++ b/frontend/portal/tsconfig.server.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", // 기본설정을 포함한다 + "compilerOptions": { + "module": "commonjs", // commonJs 사용하도록 override + "outDir": "dist", // 빌드 파일 경로 (production mode) + "noEmit": false // 서버에 대한 결과 파일을 내보내지 않음 (production mode) + }, + "include": ["server"] // server/ 디렉토리 아래에 있는 파일만 컴파일 (production mode) +}