turborepo typescript construiește aplicația node cu dependențe de workspace
Încerc să construiesc un API Express într-un spațiu de lucru pnpm turborepo.
api are @my/shared ca dependență, care este un pachet local din workspace.
Nu am reușit să obțin construcția corectă. Cred că ceea ce trebuie să pot face este să construiesc biblioteca partajată și să o includ în proiectul API, dar pentru a face asta ar trebui să pot schimba toate declarațiile de import pentru a permite nodului să găsească modulul, deoarece este importat ca @my/shared.
structură :
apps/
/api <- express (depends on @my/shared)
packages/
/shared <- @my/shared
tsconfig de bază
{
"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"]
}
tsconfig-uri exprimate și partajate
"extends": "../../tsconfig.json",
"compilerOptions": {
"baseUrl": "src",
"paths": {
"~/*": ["*"]
},
"module": "commonjs",
"outdir": "./dist"
},
"include": [
"src",
]
}
Vreau pur și simplu să convertesc această aplicație ts în js pentru a rula în modul de producție cu pm2.
Am găsit multe resurse, dar nu am reușit să găsesc nimic care să mă ajute să realizez acest lucru.
Am încercat să rulez tsc din directorul rădăcină, rularea rezultatului în node dă eroarea:
`„Eroare: Nu se poate găsi modulul 'express'”`
Am încercat să rulez tsc la nivel de API, ceea ce dă următoarea eroare atunci când rulez pnpm în /dist pentru a instala dependențele.
ERR_PNPM_WORKSPACE_PKG_NOT_FOUND: @my/sharedRăspuns #1
Am avut o problemă similară și am găsit referința și am construit cu succes Express.
- https://github.com/Riley-Brown/turbo-repo-express-next-example
- https://github.com/vercel/turbo/tree/main/examples/kitchen-sink
Poți folosi tsup pentru a transpila sursa.