新增 npm run sync-moodle:一键同步播放器资源到 Moodle 插件仓库
This commit is contained in:
@@ -47,6 +47,7 @@ MoePlayer —— 一款中文友好的开源网页视频播放器(MIT 协议
|
|||||||
- **改动 `src/` 后必须执行 `npm run build`** 重新生成产物;`moeplayer/js/` 与 `moeplayer/css/` 下的 js、css 均为生成物,勿手改
|
- **改动 `src/` 后必须执行 `npm run build`** 重新生成产物;`moeplayer/js/` 与 `moeplayer/css/` 下的 js、css 均为生成物,勿手改
|
||||||
- 皮肤机制:全部主题相关值是 CSS 自定义属性(`--moe-*`),定义在 `.moeplayer, .moeplayer-menu, .moeplayer-error` 作用域(菜单/错误框挂在 body 下);按钮图标为 SVG data-URI + CSS mask,颜色跟随 `--moe-icon-color`,不再使用雪碧图 PNG;换肤=覆盖变量,新增主题=在 `src/css/themes/` 加一个变量文件并登记到 `scripts/build-css.js` 的 themes 清单
|
- 皮肤机制:全部主题相关值是 CSS 自定义属性(`--moe-*`),定义在 `.moeplayer, .moeplayer-menu, .moeplayer-error` 作用域(菜单/错误框挂在 body 下);按钮图标为 SVG data-URI + CSS mask,颜色跟随 `--moe-icon-color`,不再使用雪碧图 PNG;换肤=覆盖变量,新增主题=在 `src/css/themes/` 加一个变量文件并登记到 `scripts/build-css.js` 的 themes 清单
|
||||||
- 升级依赖:改 `package.json` 版本号后 `npm install && npm run build`
|
- 升级依赖:改 `package.json` 版本号后 `npm install && npm run build`
|
||||||
|
- Moodle 插件资源同步:`npm run sync-moodle` 把构建产物 `moeplayer/` 拷贝到同级目录的 `moodle-media_moeplayer` 插件仓库(播放器升级后执行,插件仓库另行提交)
|
||||||
- 运行时机制:播放器用 `getPath()` 定位自身所在目录,按需动态 `<script>` 加载同级 `hls.js/` 等目录里的文件,库挂全局变量(`Hls`/`mpegts`)。**这个目录结构约定不能破坏**
|
- 运行时机制:播放器用 `getPath()` 定位自身所在目录,按需动态 `<script>` 加载同级 `hls.js/` 等目录里的文件,库挂全局变量(`Hls`/`mpegts`)。**这个目录结构约定不能破坏**
|
||||||
- 插件机制:未显式指定 `plug` 时按 URL 扩展名自动识别插件(`.m3u8`→hls.js,`.flv`/`.ts`/`.m2ts`→mpegts.js,识别不到走原生播放),只填 `vars['plug']`,canPlay 原生分流不变(iOS 上 m3u8 仍走原生 HLS);flv 播放基于 mpegts.js,`plug:'flv.js'` 保留为兼容别名;`plug:'dash.js'` 已移除
|
- 插件机制:未显式指定 `plug` 时按 URL 扩展名自动识别插件(`.m3u8`→hls.js,`.flv`/`.ts`/`.m2ts`→mpegts.js,识别不到走原生播放),只填 `vars['plug']`,canPlay 原生分流不变(iOS 上 m3u8 仍走原生 HLS);flv 播放基于 mpegts.js,`plug:'flv.js'` 保留为兼容别名;`plug:'dash.js'` 已移除
|
||||||
- rollup 配置要点:`treeshake: false`(完整保留所有工具函数,与旧单文件一致);UMD `name: 'MoePlayer'`、`exports: 'default'`,CJS/AMD/全局变量行为与旧 UMD 等价
|
- rollup 配置要点:`treeshake: false`(完整保留所有工具函数,与旧单文件一致);UMD `name: 'MoePlayer'`、`exports: 'default'`,CJS/AMD/全局变量行为与旧 UMD 等价
|
||||||
|
|||||||
+2
-1
@@ -6,7 +6,8 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "rollup -c && node scripts/build-css.js && node scripts/copy-libs.js",
|
"build": "rollup -c && node scripts/build-css.js && node scripts/copy-libs.js",
|
||||||
"test": "node scripts/smoke.test.js",
|
"test": "node scripts/smoke.test.js",
|
||||||
"serve": "node scripts/serve.js 8000"
|
"serve": "node scripts/serve.js 8000",
|
||||||
|
"sync-moodle": "node scripts/sync-moodle.js"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"hls.js": "^1.6.10",
|
"hls.js": "^1.6.10",
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
* 同步播放器资源到 Moodle 插件仓库
|
||||||
|
* 把构建产物 moeplayer/ 整个拷贝到 ../moodle-media_moeplayer/moeplayer/
|
||||||
|
* 用法:npm run build 之后执行 node scripts/sync-moodle.js
|
||||||
|
*/
|
||||||
|
const fs = require('fs');
|
||||||
|
const path = require('path');
|
||||||
|
|
||||||
|
const src = path.resolve(__dirname, '..', 'moeplayer');
|
||||||
|
const dest = path.resolve(__dirname, '..', '..', 'moodle-media_moeplayer', 'moeplayer');
|
||||||
|
|
||||||
|
if (!fs.existsSync(path.dirname(dest))) {
|
||||||
|
console.error('未找到插件仓库目录: ' + path.dirname(dest));
|
||||||
|
console.error('请确认 moodle-media_moeplayer 与本仓库同级。');
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
fs.rmSync(dest, { recursive: true, force: true });
|
||||||
|
fs.cpSync(src, dest, { recursive: true });
|
||||||
|
console.log('已同步: ' + src + ' -> ' + dest);
|
||||||
|
console.log('提示:别忘了在插件仓库提交并视情况递增 version.php 的 $plugin->version');
|
||||||
Reference in New Issue
Block a user