NestJs系列之使用Vite搭建项目
生活随笔
收集整理的這篇文章主要介紹了
NestJs系列之使用Vite搭建项目
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
介紹
在使用nest創建項目時,默認使用webpack進行打包,有時候啟動項目需要1-2分鐘。所以希望采用vite進行快速啟動項目進行開發。
本文主要使用NestJs、Vite和swc進行配置。文章實操較多,概念性的東西可訪問對應的官方文檔進行了解。tips: 個人認為概念性的東西,在文章中指出。對熟悉的人來說直接就實操,節省時間。感興趣的小伙伴探索性去了解,提升學習樂趣
概念
- 什么是NestJS?
官方地址: NestJS - A progressive Node.js framework
中文地址: NestJS 簡介 | NestJS 中文文檔 | NestJS 中文網 (bootcss.com)
個人理解: NodeJS的Spring Boot. 結合了面向對象,函數式編程和依賴注入的理念,使用NodeJS 搭建后端應用程序。
聯想: express、egg、Spring Boot
- 什么是Vite?
官方地址: Vite | Next Generation Frontend Tooling (vitejs.dev)
中文地址: Vite | 下一代的前端工具鏈 (vitejs.dev) - 什么是swc?
官方地址:Rust-based platform for the Web – SWC
實操
創建項目
參考NestJS 官網
執行命令:
$ npm i -g @nestjs/cli
$ nest new project-name
安裝完成之后目錄結構如下:
在項目的根目錄下運行項目
在瀏覽器上輸入localhost:3000可以看到項目的輸出:Hello World
安裝Vite
pnpm add vite vite-plugin-node -D
配置Vite
參考VitePluginNode配置
export default defineConfig({
server: {
port: 3000,
},
plugins: [
...VitePluginNode({
// NodeJs 原生請求適配器
// 支持'express', 'nest', 'koa' 和 'fastify',
adapter: 'nest',
// 項目入口文件
appPath: './src/main',
// 在項目入口文件中導出的名字
exportName: 'appServer',
// 編譯方式: esbuild 和 swc,
// 默認 esbuild. 但esbuild 不支持 'emitDecoratorMetadata'
// 使用swc需要安裝 `@swc/core`
tsCompiler: 'swc',
}),
],
optimizeDeps: {
exclude: [
'@nestjs/microservices',
'@nestjs/websockets',
'cache-manager',
'class-transformer',
'class-validator',
'fastify-swagger'
],
},
});
修改入口文件
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
if (import.meta.env.PROD) {
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
}
bootstrap();
}
export const appServer = NestFactory.create(AppModule);
問題總結
-
無法識別
import.meta解決方案:修改
tsconfig.json -
無法識別
env解決方案:可參考vite官網添加
env.d.ts/// <reference types="vite/client" /> interface ImportMetaEnv { readonly VITE_APP_TITLE: string; // more env variables... } interface ImportMeta { readonly env: ImportMetaEnv; }
總結
以上是生活随笔為你收集整理的NestJs系列之使用Vite搭建项目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 火锅鱼宣传标语文案30句
- 下一篇: [ARC132E] Paw