diff --git a/.msg.txt b/.msg.txt new file mode 100644 index 0000000..ff8fcf1 --- /dev/null +++ b/.msg.txt @@ -0,0 +1,12 @@ +fix(build): 前端资源重建不再破坏补丁自证(webpack 会压缩 mix.copy 过去的文件) + +- webpack.mix.js:去掉 context-js 的 mix.copy —— --production 下 webpack 会对 copy 过去的文件做 + 压缩改名,public/js 里的补丁版会丢掉 isIOSWebKit / LONG_PRESS_DELAY = 250 / installMenuGuard / + MENU_OPEN_GRACE 这些标记,既让 Dockerfile 的补丁自证 grep 失败,又与 resources/js 不再字节一致 + (CI 的「两份 context-js.js 内容一致」测试正是抓出这个问题的) +- 新增 scripts/copy-patched-assets.js,package.json 的 production 收尾调用它做字节级拷贝, + 保证 public/js 与 resources/js 两份永远一模一样 +- user/images.blade.php 的 md5 同步更新(界面改造后重算) + +验证:npm run prod 通过;两份 context-js.js md5 均为 e114c840…(含全部补丁标记); +70/70 jsdom 行为测试通过;verify_repo.py 通过 diff --git a/Dockerfile b/Dockerfile index b4f545b..91213d5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -101,7 +101,7 @@ RUN php -r "file_exists('.env') || copy('.env.example', '.env');" \ RUN printf '%s\n' \ 'e114c840101d021aa416239196925624 ./public/js/context-js/context-js.js' \ 'e114c840101d021aa416239196925624 ./resources/js/context-js.js' \ - 'ec25ecc2a4f09395db5a50de1883d521 ./resources/views/user/images.blade.php' \ + 'fb65dc33a394fc28e14af5ab92272406 ./resources/views/user/images.blade.php' \ | md5sum -c - \ && grep -q "context-js.js') . '?v=ios-longpress4'" ./resources/views/user/images.blade.php \ && grep -q 'isIOSWebKit' ./public/js/context-js/context-js.js \ @@ -118,7 +118,7 @@ RUN printf '%s\n' \ "fork_sha=${FORK_SHA}" \ "lsky_commit=${LSKY_COMMIT}" \ "context_js_md5=e114c840101d021aa416239196925624" \ - "images_blade_md5=ec25ecc2a4f09395db5a50de1883d521" \ + "images_blade_md5=fb65dc33a394fc28e14af5ab92272406" \ > .code-revision \ && cat .code-revision diff --git a/src/package.json b/src/package.json index e747015..2ebc43a 100644 --- a/src/package.json +++ b/src/package.json @@ -7,7 +7,7 @@ "watch-poll": "mix watch -- --watch-options-poll=1000", "hot": "mix watch --hot", "prod": "npm run production", - "production": "mix --production" + "production": "mix --production && node scripts/copy-patched-assets.js" }, "devDependencies": { "@fortawesome/fontawesome-free": "^5.15.4", diff --git a/src/public/js/context-js/context-js.js b/src/public/js/context-js/context-js.js index cc072ad..6371b7d 100644 --- a/src/public/js/context-js/context-js.js +++ b/src/public/js/context-js/context-js.js @@ -1 +1,726 @@ -window.context=window.context||function(){let e={fadeSpeed:100,filter:function(e){},above:"auto",preventDoubleContext:!0,compress:!1};let t=[],n=!1,o=0,i=0,a=!1;function r(e,r){!function(){if(n)return;n=!0;let e=t.map((function(e){return e+", "+e+" *"})).join(", ")+", .dropdown-context, .dropdown-context *";$('