typescript - interní balíček Turborepo BEZ Next.js
Snažím se vytvořit interní balíček v projektu turborepo. Sdílený balíček následuje stejné nastavení jako příklad a funguje tak, jak je, ve frontendovém projektu Vite. Nicméně při importování tohoto modulu do backendu (Nest + SWC) selže vývojový skript s chybou Unexpected token 'export'.
Sestavený soubor main.js se snaží vyžádat balíček shared, ale je to pouze TypeScript soubor (jak je uvedeno v příkladu). Všechny příklady a další problémy používají Next.js, který má konfigurační možnost transpilePackages, která přesně dělá to, co se snažím dosáhnout. Existuje alternativa k transpilePackages, která funguje mimo Next.js? (nejlépe s SWC)
Věci, které jsem vyzkoušel:
- včetně sdíleného balíčku v
tsconfig.json - včetně toho v
webpack.config.js(změnou vzoru vyloučeníswc-loadertak, aby tato složka z node_modules byla zahrnuta)
Existuje velmi podobný problém jako můj, ale stále není vyřešený a používá Next.js.
Odpověď č. 1
Měl jsem to samé, postupoval jsem podle https://turbo.build/repo/docs/handbook/publishing-packages/bundling a pomohlo to.
Když jsem se snažil udělat to samé s "build": "tsc" v package.json mého balíčku, nefungovalo to správně, přechod na "build": "tsup src/index.ts --format cjs,esm --dts" fungoval lépe jak pro aplikaci ve Vite, tak pro můj backend v CommonJS.
Odpověď č. 2
Měl jsem stejný problém. Zahrnutí balíčku do vlastnosti "include" v tsconfig.json mi to vyřešilo. Jen se ujistěte, že nevylučujete celou složku node_modules.
{
"compilerOptions": {...},
"include": ["node_modules/PROJECT"],
"exclude": ["node_modules(?!/PROJECT\b)(?:/.*)?"]
}
