turborepo typescript สร้าง node app พร้อมกับ dependencies ของ workspace
กำลังพยายามสร้าง API แบบ Express ภายใน workspace ของ pnpm turborepo
API มี @my/shared เป็นการพึ่งพาซึ่งเป็นแพ็กเกจในพื้นที่ทำงานท้องถิ่น
ฉันไม่สามารถทำให้การสร้างสำเร็จได้ ฉันคิดว่าสิ่งที่ฉันต้องทำให้ได้คือสร้างไลบรารีที่แชร์ได้และรวมมันในโปรเจกต์ api แต่เพื่อทำสิ่งนี้ฉันจะต้องสามารถเปลี่ยนคำสั่ง import ทั้งหมดเพื่อให้ node หาโมดูลเจอเพราะมันถูก import เป็น @my/shared
โครงสร้าง :
apps/
/api <- express (depends on @my/shared)
packages/
/shared <- @my/shared
ไฟล์ tsconfig พื้นฐาน
{
"compilerOptions": {
"target": "ES2017",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"checkJs": true,
"skipLibCheck": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"esModuleInterop": true,
"module": "CommonJS",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"noUncheckedIndexedAccess": true,
"composite": false,
"declaration": true,
"declarationMap": true,
"inlineSources": false,
"outDir": "./dist"
},
"exclude": ["node_modules", "build", "dist", ".next", ".expo"]
}
tsconfigs ที่ใช้ร่วมและแสดงออก
"extends": "../../tsconfig.json",
"compilerOptions": {
"baseUrl": "src",
"paths": {
"~/*": ["*"]
},
"module": "commonjs",
"outdir": "./dist"
},
"include": [
"src",
]
}
ฉันเพียงแค่อยากจะแปลงแอป ts นี้เป็น js เพื่อรันในโหมด production ด้วย pm2
ฉันพบแหล่งข้อมูลมากมายแต่ไม่สามารถหาสิ่งใดที่จะช่วยฉันทำให้สำเร็จได้
ฉันได้ลองรัน tsc จากโฟลเดอร์รากแล้ว การรันผลลัพธ์ใน node ให้ข้อผิดพลาด:
`"ข้อผิดพลาด: ไม่สามารถหาโมดูล 'express' ได้`
ฉันได้ลองรัน tsc ในระดับ API ซึ่งทำให้เกิดข้อผิดพลาดดังต่อไปนี้เมื่อรัน pnpm ใน /dist เพื่อติดตั้ง dependencies
ERR_PNPM_WORKSPACE_PKG_NOT_FOUND: @my/sharedคำตอบ #1
ฉันเคยมีปัญหาคล้ายกันและพบเอกสารอ้างอิงและสร้าง Express ได้สำเร็จ
- https://github.com/Riley-Brown/turbo-repo-express-next-example
- https://github.com/vercel/turbo/tree/main/examples/kitchen-sink
คุณสามารถใช้ tsup เพื่อแปลงซอร์สโค้ดได้