2023. 7. 28. 23:03ใStudy_Develop/์ธํ๋ฐ - Slack ํด๋ก ์ฝ๋ฉ(๋ฐฑ์๋)
Nest JS Hot reload ์ค์ ํ๊ธฐ
https://docs.nestjs.com/recipes/hot-reload
Documentation | NestJS - A progressive Node.js framework
Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Rea
docs.nestjs.com
๊ณต์๋ฌธ์ ์ฐธ๊ณ ใ ใ
Hot reload๋?
nodemon ํน์ pm2 ์ฒ๋ผ ๋ด๊ฐ ์ํ๋ ๊ฒฐ๊ณผ๊ฐ ์น์ฌ์ดํธ์ ๋ฐ๋ก๋ฐ๋ก ๋น๋๋๋๋ก ์๋ฒ์ ์ฌ์์์ ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
cli๋ฅผ ์ด์ฉํ์ฌ Hot Reload ์ค์นํ๊ธฐ
1. ํ์ํ package์ค์น
$ npm i --save-dev webpack-node-externals run-script-webpack-plugin webpack
์๋ ๊ฒ ์ค์น ํด์ฃผ์ธ์ฉ
2. ์ค์น๊ฐ ์๋ฃ๋์๋ค๋ฉด, ํ๋ก์ ํธ์ root๋๋ ํฐ๋ฆฌ์ webpack-hmr.config.js ํ์ผ ์์ฑ ํ ์๋์ ์ฝ๋๋ฅผ ๋ณต๋ถํด์ฃผ์ธ์!
webpack-hmr.config.js
const nodeExternals = require('webpack-node-externals');
const { RunScriptWebpackPlugin } = require('run-script-webpack-plugin');
module.exports = function (options, webpack) {
return {
...options,
entry: ['webpack/hot/poll?100', options.entry],
externals: [
nodeExternals({
allowlist: ['webpack/hot/poll?100'],
}),
],
plugins: [
...options.plugins,
new webpack.HotModuleReplacementPlugin(),
new webpack.WatchIgnorePlugin({
paths: [/\.js$/, /\.d\.ts$/],
}),
new RunScriptWebpackPlugin({ name: options.output.filename, autoRestart: false }),
],
};
};
3. Hot_Module๋์ฒดํ๊ธฐ
์์์ ์ ์ํ HMR์ ํ์ฑํํ๊ธฐ ์ํด main.tsํ์ผ๋ก ์ด๋ํ์ฌ ์๋์ ์ฝ๋ ์ถ๊ฐ
main.ts
declare const module: any;
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
if (module.hot) {
module.hot.accept();
module.hot.dispose(() => app.close());
}
}
bootstrap();
4. package.jsonํ์ผ ์์
"start:dev": "nest build --webpack --webpackPath webpack-hmr.config.js --watch"
5. ํ์ฌ ์คํ ์ค์ธ ์๋ฒ๋ฅผ ์ข ๋ฃํ๊ณ , ๋ค์ ์์
$ npm run start:dev
'Study_Develop > ์ธํ๋ฐ - Slack ํด๋ก ์ฝ๋ฉ(๋ฐฑ์๋)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค - ๋ฐฐ์ด ๋ง๋ค๊ธฐ 2 - js (everyํจ์, continue) (0) | 2023.08.04 |
---|---|
loggerMiddleware๋ก morgan์ฒ๋ผ ๋ก๊น ํ๊ธฐ (0) | 2023.07.31 |
Nestjs ํ๊ฒฝ๋ณ์ (env) ์ค์ ๋ฐ ์ฌ์ฉ (0) | 2023.07.29 |
Nest.js ์ controller๊ธฐ๋ณธ ๋ฐ ์ฅ์ (0) | 2023.07.29 |