CJS:n ja ESM:n rakentaminen TypeScript-projektiviitteitä käyttämällä monorepossa
Minulla on TypeScript-monorepo-prototyyppi asennettuna ja toiminnassa cjs:llä, Yarn-työtiloilla ja projektiviitteillä käyttäen inkrementaalisia käännöksiä:
https://github.com/rosskevin/learn-a/tree/build-cjs-esm
Koska tsc -b käyttää oletuksena tsconfig.json-tiedostoa jokaisessa projektissa ja ne on asetettu cjs:ää varten, haluaisin yksinkertaisesti välittää ylitykset komentorivin kautta:
yarn tsc -b --outDir lib/esm --module esnext --target esnext ✘ 127
yarn run v1.12.3
/Users/kross/projects/js/node_modules/.bin/tsc -b --outDir lib/esm --module esnext --target esnext
error TS5072: Unknown build option '--outDir'.
error TS5072: Unknown build option '--module'.
error TS5072: Unknown build option '--target'.
error Command failed with exit code 1.
Mikä on paras tapa saada sekä cjs- että esm-käännös TypeScript-projektin referenssiprojektille?
Vastaus #1
Ainoa tapa rakentaa molemmille kohteille (käyttäen inkrementaalista mahdollisuuksien mukaan) on suorittaa inkrementaaliset cjs:lle tsc -b ja ei-inkrementaalinen (näyttää siltä) jokaiselle muulle projektille.
Tämä toimii tällä hetkellä:
"build": "tsc -b",
"build:esm": "lerna exec --stream --parallel -- ../../node_modules/.bin/tsc --outDir lib/esm --module esnext --target esnext",
Tässä on prototyyppivarasto:
https://github.com/rosskevin/learn-a
Vastaus #2
Osoitteessa https://www.typescriptlang.org/docs/handbook/compiler-options.html
-b --build
Kääntää tämän projektin ja kaikki sen riippuvuudet, jotka on määritelty projektiviitteillä. Huomaa, että tämä tunniste ei ole yhteensopiva muiden tällä sivulla olevien kanssa. Lisätietoja saat täältä https://www.typescriptlang.org/docs/handbook/project-references.html
