javascript - Kompiler TypeScript-bibliotek til es2015- og CommonJs-moduler
Jeg har et delt React-komponentbibliotek kompilert med TypeScript. For øyeblikket kompilerer jeg biblioteket med CommonJs-moduler, men jeg ønsker også å ha ES2015-moduler tilgjengelig for å få Webpack tree shaking tilgjengelig i forbrukerprosjektet.
Bibliotekmappestrukturen ser slik ut:
Filen index.ts er der jeg har det offentlige API-et. Et eksempel ville være:
// Components
export { default as AlertBox } from './components/AlertBox/AlertBox';
export { default as Button } from './components/Button/Button';
Og jeg har denne TypeScript-konfigurasjonen (tsconfig.json):
{
"compilerOptions": {
"baseUrl": ".",
"module": "commonjs",
"moduleResolution": "node",
"target": "es5",
"noImplicitAny": false,
"sourceMap": true,
"outDir": "./dist",
"jsx": "react",
"allowSyntheticDefaultImports": true,
"declaration": true,
"paths": {
"*": ["public/*", "src/*"]
}
},
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.test.*"]
}
Jeg prøvde å gjøre noe sånt som dette:
tsc && tsc -m es6 --outDir lib-esm
Men dette kompilerer hele prosjektet til ES6-moduler, så jeg vil ende opp med all koden duplisert.
Det jeg prøver å oppnå er å ha kun 2 forskjellige index.ts (offentlig API). En med es6-moduler (index.es.ts) og den andre med CommonJs (index.ts). På en måte som material-ui gjør.
Er det en måte å få de filene kun med TypeScript?

