init: MetonaToast v2.0.0 基线 — 已完成改进(模板抽象/constants拆分/测试增强)

This commit is contained in:
tianhao
2026-06-16 12:39:36 +08:00
commit ff9c7cd218
25 changed files with 20621 additions and 0 deletions
+135
View File
@@ -0,0 +1,135 @@
import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
import terser from '@rollup/plugin-terser';
import dts from 'rollup-plugin-dts';
import serve from 'rollup-plugin-serve';
import livereload from 'rollup-plugin-livereload';
const isDev = process.env.ROLLUP_WATCH;
const isProd = process.env.NODE_ENV === 'production';
// 基础配置
const baseConfig = {
input: 'src/index.js',
plugins: [
resolve(),
commonjs(),
],
};
// 开发服务器配置
const devPlugins = isDev ? [
serve({
open: true,
contentBase: ['examples', 'dist'],
port: 3000,
}),
livereload({
watch: ['src', 'examples'],
}),
] : [];
// 生产环境配置
const prodPlugins = isProd ? [
terser({
compress: {
drop_console: true,
drop_debugger: true,
pure_funcs: ['console.log', 'console.warn'],
},
format: {
comments: false,
},
}),
] : [];
// 输出配置
export default [
// UMD格式(浏览器)
{
...baseConfig,
output: {
file: 'dist/metona-toast.js',
format: 'umd',
name: 'MeToast',
exports: 'named',
sourcemap: !isProd,
globals: {},
},
plugins: [
...baseConfig.plugins,
...devPlugins,
...prodPlugins,
],
},
// ESM格式(现代浏览器/打包工具)
{
...baseConfig,
output: {
file: 'dist/metona-toast.esm.js',
format: 'es',
exports: 'named',
sourcemap: !isProd,
},
plugins: [
...baseConfig.plugins,
...prodPlugins,
],
},
// CommonJS格式(Node.js
{
...baseConfig,
output: {
file: 'dist/metona-toast.cjs.js',
format: 'cjs',
exports: 'named',
sourcemap: !isProd,
},
plugins: [
...baseConfig.plugins,
...prodPlugins,
],
},
// 压缩版本(UMD
{
...baseConfig,
output: {
file: 'dist/metona-toast.min.js',
format: 'umd',
name: 'MeToast',
exports: 'named',
sourcemap: false,
globals: {},
},
plugins: [
...baseConfig.plugins,
terser({
compress: {
drop_console: true,
drop_debugger: true,
pure_funcs: ['console.log', 'console.warn'],
passes: 2,
},
format: {
comments: false,
},
mangle: {
toplevel: true,
},
}),
],
},
// TypeScript声明文件
{
input: 'types/index.d.ts',
output: {
file: 'dist/metona-toast.d.ts',
format: 'es',
},
plugins: [dts()],
},
];