48 lines
1.2 KiB
TypeScript
48 lines
1.2 KiB
TypeScript
import { createRequire } from 'node:module'
|
|
import { defineConfig } from 'rollup'
|
|
import ts from '@rollup/plugin-typescript'
|
|
import resolve from '@rollup/plugin-node-resolve'
|
|
import json from '@rollup/plugin-json'
|
|
import dts from 'rollup-plugin-dts'
|
|
import rm from 'rollup-plugin-rm'
|
|
|
|
const require = createRequire(import.meta.url)
|
|
const pkg = require('./package.json')
|
|
|
|
const external = ['esbuild', ...Object.keys(pkg.dependencies || {}), ...Object.keys(pkg.peerDependencies || {})]
|
|
|
|
export default defineConfig([
|
|
{
|
|
input: ['src/index.ts', 'src/cli.ts'],
|
|
output: [
|
|
{
|
|
dir: 'dist',
|
|
entryFileNames: '[name].cjs',
|
|
chunkFileNames: 'chunks/lib-[hash].cjs',
|
|
format: 'cjs'
|
|
},
|
|
{
|
|
dir: 'dist',
|
|
entryFileNames: '[name].mjs',
|
|
chunkFileNames: 'chunks/lib-[hash].mjs',
|
|
format: 'es'
|
|
}
|
|
],
|
|
external,
|
|
plugins: [
|
|
rm('dist', 'buildStart'),
|
|
json(),
|
|
ts({ compilerOptions: { rootDir: 'src', declaration: true, declarationDir: 'dist/types' } }),
|
|
resolve()
|
|
],
|
|
treeshake: {
|
|
moduleSideEffects: false
|
|
}
|
|
},
|
|
{
|
|
input: 'dist/types/index.d.ts',
|
|
output: [{ file: pkg.types, format: 'es' }],
|
|
plugins: [dts(), rm('dist/types', 'buildEnd')]
|
|
}
|
|
])
|