typescript - Turborepo sisäinen paketti ILMAN Next.js:ää
Yritän luoda sisäisen paketin turborepo-projektissa. Jaettu paketti noudattaa samaa asetusta kuin esimerkki, ja se toimii sellaisenaan Vite-frontend-projektissa. Kuitenkin, kun tuon kyseisen moduulin backendille (Nest + SWC), kehitysskripti epäonnistuu Unexpected token 'export'.
Rakennettu main.js-tiedosto yrittää vaatia jaettua pakettia, mutta se on vain TypeScript-tiedosto (kuten esimerkissä). Kaikki esimerkit ja muut ongelmat käyttävät Next.js:ää, jolla on transpilePackages-konfiguraatioasetuksen, joka tekee täsmälleen sen, mitä yritän saavuttaa. Onko olemassa vaihtoehtoa transpilePackages:lle, joka toimii Next.js:n ulkopuolella? (mieluiten SWC:n kanssa)
Asioita, joita olen kokeillut:
- mukaan lukien jaettu paketti
tsconfig.json-tiedostossa - sisällyttämällä se
webpack.config.js-tiedostoon (muuttamallaswc-loader-poissulkemismallia niin, että kyseinen kansio node_modulesista sisällytetään)
On hyvin samanlainen ongelma kuin minulla, mutta se on edelleen ratkaisematta ja käyttää Next.js:ää.
Vastaus #1
Minulla oli sama asia, seurasin https://turbo.build/repo/docs/handbook/publishing-packages/bundling ja se auttoi.
Kun yritin tehdä samaa käyttämällä "build": "tsc" paketini package.jsonissa, se ei toiminut kunnolla. Vaihtaminen "build": "tsup src/index.ts --format cjs,esm --dts" toimi paremmin sekä vite-sovellukselle että commonjs-backendilleni.
Vastaus #2
Minulla oli sama ongelma. Paketin sisällyttäminen tsconfig.json-tiedoston "include"-ominaisuuteen ratkaisi sen minulle. Varmista vain, ettet sulje pois koko node_modules-kansiota.
{
"compilerOptions": {...},
"include": ["node_modules/PROJECT"],
"exclude": ["node_modules(?!/PROJECT\b)(?:/.*)?"]
}
