阶段2:拆分为 ES Module + Rollup 构建,重写 README
- src/ 下拆分为入口/语言包/默认配置/主函数/工具模块,主函数整体搬入零改动 - rollup 打包 UMD(moeplayer.js + moeplayer.min.js),用户使用方式不变 - 库拷贝逻辑移至 scripts/copy-libs.js - README 重写:中文文档、快速开始、路线图、致谢原作者 - index.html 增加皮肤切换演示(默认/红色/西瓜)
This commit is contained in:
@@ -1,14 +1,12 @@
|
||||
/*
|
||||
* 构建脚本
|
||||
* 功能:
|
||||
* 1. 使用 terser 将 moeplayer/js/moeplayer.js 压缩为 moeplayer.min.js
|
||||
* 2. 从 node_modules 拷贝运行时依赖(hls.js/flv.js/mpegts.js)到 moeplayer/ 对应目录
|
||||
* 构建脚本(第二步)
|
||||
* 功能:从 node_modules 拷贝运行时依赖(hls.js/flv.js/mpegts.js)到 moeplayer/ 对应目录
|
||||
* 播放器运行时会按需动态加载这些文件,目录结构需与 getPath() 的约定保持一致
|
||||
* 用法:npm run build
|
||||
* 第一步(rollup 打包压缩)见 rollup.config.js
|
||||
* 用法:npm run build(即 rollup -c && node scripts/copy-libs.js)
|
||||
*/
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const terser = require('terser');
|
||||
|
||||
const root = path.resolve(__dirname, '..');
|
||||
|
||||
@@ -19,23 +17,6 @@ const libs = [
|
||||
['mpegts.js', 'mpegts.js', ['mpegts.js', 'mpegts.js.map', 'LICENSE']]
|
||||
];
|
||||
|
||||
async function minifyCore() {
|
||||
const src = path.join(root, 'moeplayer/js/moeplayer.js');
|
||||
const dist = path.join(root, 'moeplayer/js/moeplayer.min.js');
|
||||
const code = fs.readFileSync(src, 'utf8');
|
||||
const result = await terser.minify(code, {
|
||||
output: {
|
||||
// 保留文件头部的版权注释
|
||||
comments: /^!|软件名称|版权/
|
||||
}
|
||||
});
|
||||
if (result.error) {
|
||||
throw result.error;
|
||||
}
|
||||
fs.writeFileSync(dist, result.code, 'utf8');
|
||||
console.log('压缩完成: moeplayer/js/moeplayer.min.js (' + result.code.length + ' bytes)');
|
||||
}
|
||||
|
||||
function copyLibs() {
|
||||
for (const [pkg, dir, files] of libs) {
|
||||
const pkgRoot = path.dirname(require.resolve(pkg + '/package.json'));
|
||||
@@ -55,11 +36,10 @@ function copyLibs() {
|
||||
}
|
||||
}
|
||||
|
||||
(async () => {
|
||||
await minifyCore();
|
||||
try {
|
||||
copyLibs();
|
||||
console.log('构建完成');
|
||||
})().catch(err => {
|
||||
console.error('构建失败:', err);
|
||||
console.log('依赖拷贝完成');
|
||||
} catch (err) {
|
||||
console.error('拷贝失败:', err);
|
||||
process.exit(1);
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user