ค้นหาเว็บไซต์

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

บทความที่เกี่ยวข้อง