typescript - Nest.Js: นำเข้าไฟล์จากโฟลเดอร์โครงการภายนอก
ฉันเริ่มใช้ Nest.Js และฉันสร้างแอปแบบฟูลสแตกโดยมีโครงสร้างดังนี้:
api: แอป nestjs
client: แอป frontend
models: โมเดลที่แชร์กัน (เฉพาะอินเทอร์เฟซ) ระหว่างด้านหลังและด้านหน้า
ดังนั้นฉันจึงตั้งค่า alias path ใน tsconfig.json ภายในโฟลเดอร์ api เพื่อให้สามารถ import ได้สั้นลง: import { User } จาก 'models/user.model'
{
"compilerOptions": {
"module": "commonjs",
"declaration": true,
"removeComments": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"target": "es2017",
"sourceMap": true,
"incremental": true,
"outDir": "./dist",
"baseUrl": "./",
"paths": {
"models/*": ["../models/*"]
}
}
}
ปัญหาคือ TypeScript กำลังคอมไพล์และเปลี่ยนโครงสร้างหลักภายใต้โฟลเดอร์ dist และ Nest CLI ไม่พบไฟล์ main.js เพื่อเริ่มต้นแอปพลิเคชัน
มีวิธีใดบ้างในการย้ายโฟลเดอร์ models และคงโครงสร้างของ nestjs ไว้ หรืออาจเปลี่ยนการตั้งค่า nestjs เพื่อให้เริ่มแอปจาก api/src/main.js ได้?
คำตอบ #1
นี่คือสิ่งที่ TypeScript ทำเมื่อมีโค้ดอยู่นอกไดเรกทอรีราก src เพื่อให้แน่ใจว่าหลังจากการคอมไพล์สามารถใช้เส้นทางเดียวกันได้ คุณสามารถแก้ไข nest-cli.json และเพิ่มคุณสมบัติ entryFile เพื่อต้องการบอก Nest ว่าไฟล์ main อยู่ที่ไหน นอกจากนี้ พิจารณาใช้สิ่งอย่าง Nx เพื่อช่วยในการสร้าง monorepo แบบ fullstack

