Ren TypeScript npm-paket


Är det möjligt att skapa och använda ett 100% TypeScript npm-paket utan att bygga till JavaScript?

Jag försökte och lade till "main": "index.ts" i package.json men när jag importerar mina moduler får jag:

export * from './lib/my-module';
SyntaxError: Unexpected token 'export'

Anledningen till att jag inte vill kompilera är att det är ett privat paket och kommer att användas endast i TypeScript-projekt. Jag vill också behålla alla dekoratörer och kommentarer som de är, men när jag använder tsc tas de bort.

Svar #1

Ja, det är möjligt att skapa ett rent TypeScript-paket.

  1. I paketet behöver du lägga till "main": "index.ts". index.ts bör innehålla alla typer/komponenter som ska vara tillgängliga utanför. Till exempel:
export * from './model'
export * from './data-table'
export * from './context'
export * from './external-kit'
  1. Exkludera ditt paket från 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. Lägg till sökvägen till ditt paket i loadern, som är ansvarig för att transpila TS till JS. För mig är detta babel-loader:
{
  test: /\.(js|mjs|jsx|ts|tsx)$/,
  include: [paths.appSrc, path.resolve(appDirectory, 'node_modules/PACKAGE_NAME')],
  loader: require.resolve('babel-loader'),
  ...
}

Relaterade artiklar