# 파일 트리
├───.next
├───components
├───dist
│ ├───config
│ ├───constants
│ ├───routes
│ ├───service
│ ├───typeorm
│ │ └───entity
│ │ └───Models
│ ├───types
│ └───utilities
├───pages
│ └───api
├───public
│ └───img
├───server
│ ├───config
│ ├───constants
│ ├───routes
│ ├───service
│ ├───typeorm
│ │ ├───entity
│ │ │ └───Models
│ │ └───migration
│ ├───types
│ └───utilities
└───styles
next js 에서 typeorm을 사용하려면 ormconfig.js 파일이 필요합니다.
// ormconfig.js
module.exports = {
type: "mysql",
host: "localhost",
port: 3306,
username: process.env.DATABASE_ID,
password: process.env.DATABASE_PASSWORD,
database: "typeorm_tutorial",
synchronize: true, # <<production 모드에서는 끄고 사용할 것.>>
logging: true,
entities:
[
# production 모드일 경우 dist/typeorm/entity 에 있는 js 파일을 사용
process.env.NODE_ENV === 'production' ?
"dist/typeorm/entity/*{.ts,.js}" :
"server/typeorm/entity/*{.ts,.js}"
],
migrations: [
"server/typeorm/migration/**/*{.ts,.js}"
],
subscribers: [
"server/typeorm/subscriber/**/*{.ts,.js}"
],
cli: {
"entitiesDir": "typeorm/entity",
"migrationsDir": "typeorm/migration",
"subscribersDir": "typeorm/subscriber"
}
}
중간에 process.env 를 넣어 production 일 경우 경로를 다르게 설정했습니다.
# package.json
{
...
"scripts": {
"dev": "nodemon",
"pro": "cross-env NODE_ENV=production next build && cross-env NODE_ENV=production tsc --project tsconfig.server.json && cross-env NODE_ENV=production PORT=3333 node ./dist/index.js",
...
},
"dependencies": {
...
},
"devDependencies": {
...
}
}
tsconfig.json 과 tsconfig.server.json 두개를 사용합니다.
tsconfig.json은 next js 빌드할때 사용하고,
tsconfig.server.json은 tsconfig.json 설정값에 + server용 설정을 추가하여 사용합니다. (extends 옵션 사용)
# tsconfig.server.json
{
"extends": "./tsconfig.json",
"compilerOptions": {
"lib": [
"es5",
"es6",
"es2018"
],
"module": "commonjs",
"outDir": "dist",
"noEmit": false,
// 추가
"target": "es5",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"sourceMap": true,
"esModuleInterop":true
},
"include": ["server"]
}
반응형
'서버' 카테고리의 다른 글
cross env (0) | 2021.10.18 |
---|---|
node.js express httpOnly 설정 (0) | 2021.10.17 |
윈도우에서 env port 사용하기 (0) | 2021.10.16 |
ssh root 설정 (0) | 2021.10.10 |
댓글