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.
- I paketet behöver du lägga till
"main": "index.ts".index.tsbö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'
- Exkludera ditt paket från
source-map-loaderi webpack.config.js
{
enforce: 'pre',
exclude: /PACKAGE_NAME/,
test: /\.(js|mjs|jsx|ts|tsx|css)$/,
loader: require.resolve('source-map-loader'),
}
- 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'),
...
}
