router/rollup.config.js
2025-04-18 01:16:06 +08:00

153 lines
3.5 KiB
JavaScript

// rollup.config.js
import typescript from '@rollup/plugin-typescript';
import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
import { dts } from 'rollup-plugin-dts';
import alias from '@rollup/plugin-alias';
const createAlias = () => {
return alias({
entries: [
{ find: 'http', replacement: 'node:http' },
{ find: 'https', replacement: 'node:https' },
{ find: 'fs', replacement: 'node:fs' },
{ find: 'path', replacement: 'node:path' },
{ find: 'crypto', replacement: 'node:crypto' },
{ find: 'zlib', replacement: 'node:zlib' },
{ find: 'stream', replacement: 'node:stream' },
{ find: 'net', replacement: 'node:net' },
{ find: 'tty', replacement: 'node:tty' },
{ find: 'tls', replacement: 'node:tls' },
{ find: 'buffer', replacement: 'node:buffer' },
{ find: 'timers', replacement: 'node:timers' },
// { find: 'string_decoder', replacement: 'node:string_decoder' },
{ find: 'dns', replacement: 'node:dns' },
{ find: 'domain', replacement: 'node:domain' },
{ find: 'os', replacement: 'node:os' },
{ find: 'events', replacement: 'node:events' },
{ find: 'url', replacement: 'node:url' },
{ find: 'assert', replacement: 'node:assert' },
{ find: 'util', replacement: 'node:util' },
],
});
};
/**
* @type {import('rollup').RollupOptions}
*/
export default [
{
input: 'src/index.ts', // TypeScript 入口文件
output: {
file: 'dist/router.js', // 输出文件
format: 'es', // 输出格式设置为 ES 模块
},
plugins: [
createAlias(),
resolve({
browser: true,
}), // 使用 @rollup/plugin-node-resolve 解析 node_modules 中的模块
commonjs(),
typescript(), // 使用 @rollup/plugin-typescript 处理 TypeScript 文件
],
},
{
input: 'src/index.ts',
output: {
file: 'dist/router.d.ts',
format: 'es',
},
plugins: [dts()],
},
{
input: 'src/browser.ts',
output: {
file: 'dist/router-browser.js',
format: 'es',
},
plugins: [
resolve({
browser: true,
}),
commonjs(),
typescript(),
],
},
{
input: 'src/browser.ts',
output: {
file: 'dist/router-browser.d.ts',
format: 'es',
},
plugins: [dts()],
},
{
input: 'src/sign.ts',
output: {
file: 'dist/router-sign.js',
format: 'es',
},
plugins: [
createAlias(),
resolve({
browser: false,
}),
commonjs(),
typescript(),
],
},
{
input: 'src/sign.ts',
output: {
file: 'dist/router-sign.d.ts',
format: 'es',
},
plugins: [dts()],
},
{
input: 'src/router-simple.ts',
output: {
file: 'dist/router-simple.js',
format: 'es',
},
plugins: [
resolve({
browser: false,
}),
commonjs(),
typescript(),
],
},
{
input: 'src/router-simple.ts',
output: {
file: 'dist/router-simple.d.ts',
format: 'es',
},
plugins: [dts()],
},
{
input: 'src/router-simple-lib.ts',
output: {
file: 'dist/router-simple-lib.js',
format: 'es',
},
plugins: [
resolve({
browser: false,
}),
commonjs(),
typescript(),
],
external: ['xml2js'],
},
{
input: 'src/router-simple-lib.ts',
output: {
file: 'dist/router-simple-lib.d.ts',
format: 'es',
},
plugins: [dts()],
},
];