/* * rollup 构建配置 * 功能:把 src/ 下的 ES Module 打包成与旧版等价的 UMD 产物 * 1. moeplayer/js/moeplayer.js —— 未压缩版 * 2. moeplayer/js/moeplayer.min.js —— terser 压缩版(保留版权注释) * 运行时依赖(hls.js/flv.js/mpegts.js)的拷贝由 scripts/copy-libs.js 完成 * 用法:npm run build */ import terser from '@rollup/plugin-terser'; import replace from '@rollup/plugin-replace'; import { readFileSync } from 'fs'; // 版本号从 package.json 注入,源码中用 __MOE_VERSION__ 占位 const pkg = JSON.parse(readFileSync(new URL('./package.json', import.meta.url), 'utf8')); // 产物头部版权注释(与 src/index.js 顶部一致) const banner = `/* * 软件名称:MoePlayer * 版本:X3 * 版权:MoePlayer 项目(fork 自 ckplayer, www.ckplayer.com) * 开源协议:MIT */`; const outputBase = { format: 'umd', name: 'MoePlayer', // 仅导出 moeplayerEmbed 函数本身,与旧 UMD 的 module.exports = factory() 行为一致 exports: 'default', banner }; export default { input: 'src/index.js', // 关闭 tree-shaking:完整保留所有工具函数(含暂未被引用的),与旧单文件内容一致 treeshake: false, plugins: [ replace({ preventAssignment: true, values: { __MOE_VERSION__: JSON.stringify(pkg.version) } }) ], output: [ { ...outputBase, file: 'moeplayer/js/moeplayer.js' }, { ...outputBase, file: 'moeplayer/js/moeplayer.min.js', plugins: [ terser({ format: { // 保留文件头部的版权注释 comments: /^!|软件名称|版权/ } }) ] } ] };