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 (muuttamalla swc-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)(?:/.*)?"]
}

Aiheeseen liittyviä artikkeleita