Bir monorepo'da TypeScript proje referanslarını kullanarak cjs ve esm oluşturma
CJS, yarn workspaces ve artımlı derlemeler kullanarak proje referanslarına sahip bir TypeScript monorepo prototip kurulumum var ve çalışıyor:
https://github.com/rosskevin/learn-a/tree/build-cjs-esm
Her proje için varsayılan tsconfig.json dosyasını kullandığı ve bunlar cjs için ayarlandığı için, komut satırı üzerinden geçersiz kılmaları basitçe iletmek istiyorum:
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.
Typescript proje referansları olan bir proje için hem cjs hem de esm yapısını elde etmenin en iyi yolu nedir?
Cevap #1
Her iki hedef için de (mümkün olduğunda artımlı kullanarak) yapı oluşturmanın tek yolu, cjs için artımlı çalıştırmak tsc -b ve diğer projelerin her biri için artımsız (görünüşe göre) çalıştırmaktır.
Bu şu anda çalışıyor:
"build": "tsc -b",
"build:esm": "lerna exec --stream --parallel -- ../../node_modules/.bin/tsc --outDir lib/esm --module esnext --target esnext",
İşte prototip depo:
https://github.com/rosskevin/learn-a
Cevap #2
https://www.typescriptlang.org/docs/handbook/compiler-options.html adresinde
-b --build
Bu projeyi ve Proje Referansları ile belirtilen tüm bağımlılıklarını inşa eder. Bu bayrağın bu sayfadaki diğer bayraklarla uyumlu olmadığını unutmayın. Daha fazla bilgi için buraya bakın https://www.typescriptlang.org/docs/handbook/project-references.html
