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.

  1. I pakken må du legge til "main": "index.ts". index.ts bø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'
  1. Ekskluder pakken din fra source-map-loader i webpack.config.js
{
  enforce: 'pre',
  exclude: /PACKAGE_NAME/,
  test: /\.(js|mjs|jsx|ts|tsx|css)$/,
  loader: require.resolve('source-map-loader'),
}
  1. 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'),
  ...
}

Relaterte artikler