turborepo typescript build node aplikace s pracovními závislostmi
Snažím se vytvořit Express API uvnitř pracovního prostoru pnpm turborepo.
API má @my/shared jako závislost, což je místní balíček pracovního prostoru.
Nepodařilo se mi správně sestavit build. Myslím, že to, co potřebuji udělat, je sestavit sdílenou knihovnu a zahrnout ji do projektu API, ale k tomu bych musel být schopen změnit všechny importní příkazy, aby Node mohl najít modul, protože je importován jako @my/shared.
struktura :
apps/
/api <- express (depends on @my/shared)
packages/
/shared <- @my/shared
základní 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"]
}
express a sdílené tsconfigy
"extends": "../../tsconfig.json",
"compilerOptions": {
"baseUrl": "src",
"paths": {
"~/*": ["*"]
},
"module": "commonjs",
"outdir": "./dist"
},
"include": [
"src",
]
}
Já prostě chci převést tuto TS aplikaci do JS, aby mohla běžet v produkčním režimu s pm2.
Našel jsem spoustu zdrojů, ale nedařilo se mi najít nic, co by mi pomohlo toho dosáhnout.
Zkoušel jsem spustit tsc z kořenového adresáře, spuštění výstupu v node však dává chybu:
`„Chyba: Nelze najít modul 'express'“`
Zkoušel jsem spustit tsc na úrovni API, což při spuštění pnpm v /dist pro instalaci závislostí dává následující chybu.
ERR_PNPM_WORKSPACE_PKG_NOT_FOUND: @my/sharedOdpověď č. 1
Měl jsem podobný problém, našel jsem odkaz a úspěšně postavil Express.
- https://github.com/Riley-Brown/turbo-repo-express-next-example
- https://github.com/vercel/turbo/tree/main/examples/kitchen-sink
Můžete použít tsup k překompilování zdrojového kódu.