Ren TypeScript npm-pakke
Er det mulig å lage og bruke en 100 % TypeScript npm-pakke uten å bygge til JavaScript?
Jeg prøvde, og la til "main": "index.ts" i package.json, men når jeg importerer modulene mine får jeg:
export * from './lib/my-module';
SyntaxError: Unexpected token 'export'
Grunnen til at jeg ikke vil kompilere, er at det er en privat pakke og kun vil bli brukt i TypeScript-prosjekter. Jeg vil også beholde alle dekoratører og kommentarer som de er, men når jeg kjører tsc, blir de fjernet.
Svar #1
Ja, det er mulig å lage en ren TypeScript-pakke.
- I pakken må du legge til
"main": "index.ts".index.tsbør inneholde alle typer/komponenter som skal være tilgjengelige utenfor. For eksempel:
export * from './model'
export * from './data-table'
export * from './context'
export * from './external-kit'
- Ekskluder pakken din fra
source-map-loaderi webpack.config.js
{
enforce: 'pre',
exclude: /PACKAGE_NAME/,
test: /\.(js|mjs|jsx|ts|tsx|css)$/,
loader: require.resolve('source-map-loader'),
}
- Legg til banen til pakken din i loaderen, som er ansvarlig for å transpile TS til JS. For meg er dette babel-loader:
{
test: /\.(js|mjs|jsx|ts|tsx)$/,
include: [paths.appSrc, path.resolve(appDirectory, 'node_modules/PACKAGE_NAME')],
loader: require.resolve('babel-loader'),
...
}
