koatty_trace
Version:
Full link tracking and error interception for koatty.
83 lines (80 loc) • 2.35 kB
JavaScript
/**
*
* @Description:
* @Author: richen
* @Date: 2024-11-07 11:22:26
* @LastEditTime: 2025-04-02 15:05:36
* @License: BSD (3-Clause)
* @Copyright (c): <richenlin(at)gmail.com>
*/
import commonjs from '@rollup/plugin-commonjs';
import json from "@rollup/plugin-json";
import resolve from '@rollup/plugin-node-resolve';
import { builtinModules } from 'module';
import del from "rollup-plugin-delete";
import typescript from 'rollup-plugin-typescript2';
// import babel from '@rollup/plugin-babel';
import terser from "@rollup/plugin-terser";
const pkg = require('./package.json');
export default [
{
input: './src/index.ts',
output: [
{
format: 'cjs',
file: './dist/index.js',
banner: require('./scripts/copyright'),
},
{
format: 'es',
file: './dist/index.mjs',
banner: require('./scripts/copyright'),
}
],
plugins: [
del({ targets: ["dist/*", "temp/*", "docs/api"] }),
// babel({
// babelHelpers: "runtime",
// configFile: './babel.config.js',
// exclude: 'node_modules/**',
// }),
json(),
resolve({
preferBuiltins: true, // 优先选择内置模块
}),
commonjs(),
typescript({
tsconfigOverride: {
compilerOptions: {
declaration: false,
declarationMap: false,
module: "ESNext"
}
}
}),
terser({
compress: {
defaults: false, // 改为 `false`(新版本默认启用所有优化)
arrows: true, // 保留箭头函数转换
booleans: true, // 保留布尔简化
drop_console: false, // 保留 console
keep_fnames: true // 保留函数名
},
mangle: {
reserved: ['$super'], // 保留关键字
keep_classnames: true // 保留类名
},
format: {
beautify: true, // 启用格式化
indent_level: 2, // 缩进层级
comments: /@Author|@License|@Copyright/ // 保留特定注释
}
})
],
external: [
...builtinModules, // 排除 Node.js 内置模块
...Object.keys(pkg.dependencies || {}), // 排除 package.json 中的外部依赖
...Object.keys(pkg.devDependencies || {}),
],
},
]