import resolve from '@rollup/plugin-node-resolve'; import typescript from '@rollup/plugin-typescript'; import commonjs from '@rollup/plugin-commonjs'; import postcss from 'rollup-plugin-postcss'; import autoprefixer from 'autoprefixer'; import cssnano from 'cssnano'; import terser from '@rollup/plugin-terser'; import dts from 'rollup-plugin-dts'; import postcssImport from 'postcss-import'; const isApps = process.env.TYPE === 'apps'; const entrys = ['index']; /** * @type {import('rollup').RollupOptions[]} */ const configs = entrys .map((entry) => { const buildConfig = { input: `./src/${entry}.ts`, // 修改输入文件为 TypeScript 文件 output: { file: `./dist/${entry}.js`, // dir: 'dist', format: 'es', // 输出格式为 ES Module }, plugins: [ resolve({ browser: true, // 处理浏览器版本的依赖 }), commonjs(), postcss({ // extract: true, extract: true, plugins: [ postcssImport(), // 处理 @import 语句 autoprefixer(), ], }), typescript({ tsconfig: './tsconfig.json', compilerOptions: { // declaration: !isApps, // 生成声明文件 declaration: false, // 生成声明文件 declarationDir: './dist', // 声明文件输出目录 // outDir: './types', // }, }), // 添加 TypeScript 插件 terser(), // 压缩输出的 ES Module 文件 ], }; const dtsConfig = { input: `./src/${entry}.ts`, output: { file: `./dist/${entry}.d.ts`, format: 'esm', }, plugins: [ dts({ compilerOptions: { skipLibCheck: true, }, exclude: ['**/*.css'], }), ], }; return [buildConfig, dtsConfig]; }) .flat(); const entryCss = ['index']; const configsCss = entryCss.map((entry) => ({ input: `./src/${entry}.css`, // 修改输入文件为 TypeScript 文件 output: { file: `./dist/${entry}.css`, }, include: ['src/**/*.css'], plugins: [ // resolve(), postcss({ // extract: true, extract: true, plugins: [ postcssImport(), // 处理 @import 语句 autoprefixer(), ], }), ], })); export default [...configs, ...configsCss];