From bfcd3b3b2228f8e5608be88e9a762b5a6bad07e8 Mon Sep 17 00:00:00 2001
From: Jacob <hlnie@tohours.com>
Date: 星期二, 20 十月 2026 12:47:58 +0800
Subject: [PATCH] fix: 专区倒计时改为数字拆分渲染并增加 token 防止多条定时器并发导致跳动
---
scripts/set-env.js | 73 ++++++------------------------------
1 files changed, 13 insertions(+), 60 deletions(-)
diff --git a/scripts/set-env.js b/scripts/set-env.js
index 8db12f2..26f1280 100644
--- a/scripts/set-env.js
+++ b/scripts/set-env.js
@@ -1,76 +1,31 @@
/**
- * 鐜鍒囨崲鑴氭湰锛氭妸 config/env/<env>.js 閲岀殑 appid 鍚屾鍒扮紪璇戞湡閰嶇疆鏂囦欢
+ * 鐜鍒囨崲锛氭寜 config/env/<env>.js 浠庢ā鏉跨敓鎴� manifest.json
*
* 鐢ㄦ硶锛�
* npm run env:sit 绛変环浜� node scripts/set-env.js sit
* npm run env:prod 绛変环浜� node scripts/set-env.js prod
*
* 璇存槑锛�
- * appid 鏄紪璇戞湡鍊硷紙manifest.json 涓� HBuilderX 鍥哄畾杈撳叆銆佸井淇″紑鍙戣�呭伐鍏峰彧璁�
- * project.config.json 鐨� appid锛夛紝鏃犳硶鍍忔帴鍙e湴鍧�閭f牱杩愯鏃跺垏鎹紝鎵�浠ヨ繖閲屽仛
- * 鈥滀竴娆″懡浠ゅ啓鍥炩�濄�傛敼瀹屽繀椤婚噸鏂扮紪璇戜竴娆★紝dist 涓嬬殑 project.config.json 鎵嶄細鏇存柊銆�
+ * manifest.json 鏄� HBuilderX 鐨勭紪璇戣緭鍏ワ紙appid 灞炰簬缂栬瘧鏈熷�硷紝鏃犳硶鍍忔帴鍙e湴鍧�閭f牱杩愯鏃跺垏鎹級锛�
+ * 浣嗗畠鍚幆澧冪浉鍏� appid锛屼笉閫傚悎鐩存帴鎻愪氦锛屾墍浠ワ細
+ * manifest.json.demo锛堝叆搴撴ā鏉匡級 --鐢熸垚--> manifest.json锛堝凡 .gitignore锛�
+ * 鐢熸垚鍚庡繀椤婚噸鏂扮紪璇戜竴娆★紝骞跺湪寰俊寮�鍙戣�呭伐鍏蜂腑閲嶆柊鎵撳紑椤圭洰锛坅ppid 鍙樻洿闇�閲嶅紑锛夈��
*
- * 鍞竴鏁版嵁婧愶細config/env/<env>.js 涓殑 UNI_APPID锛圖Cloud 鏍囪瘑锛夈�丄PPID锛堝皬绋嬪簭 appid锛�
+ * 濡傞渶鍦� HBuilderX 閲岀洿鎺ョ紪璇�/杩愯璋冭瘯锛屽厛璺戜竴娆℃湰鑴氭湰锛�
+ * 璧板懡浠よ鍙戣鍒欑洿鎺ョ敤 scripts/publish.js锛堝唴閮ㄤ細鑷姩鐢熸垚锛夈��
+ *
+ * appid 鏁版嵁婧愬敮涓�锛歝onfig/env/<env>.js 涓殑 UNI_APPID锛圖Cloud 鏍囪瘑锛夈�丄PPID锛堝皬绋嬪簭 appid锛�
*/
const fs = require('fs');
const path = require('path');
+const manifest = require('./manifest');
const ROOT = path.resolve(__dirname, '..');
const ENV_DIR = path.join(ROOT, 'config', 'env');
-const files = {
- manifest: path.join(ROOT, 'manifest.json'),
- projectConfig: path.join(ROOT, 'project.config.json')
-};
-
function fail(msg) {
console.error('[set-env] ' + msg);
process.exit(1);
-}
-
-/** 鍙浛鎹㈢涓�澶� "appid" : "xxx"锛屼繚鐣欏師鏈夌┖鏍�/缂╄繘椋庢牸 */
-function replaceAppId(text, value) {
- let done = false;
- const result = text.replace(/"appid"(\s*:\s*)"[^"]*"/, function(match, sep) {
- done = true;
- return '"appid"' + sep + '"' + value + '"';
- });
- return { text: result, done: done };
-}
-
-/** 鏇挎崲 manifest.json 椤跺眰 appid锛堢涓�澶勫嚭鐜板嵆涓洪《灞傦級 */
-function patchManifest(text, env) {
- // 1) 椤跺眰 appid锛圖Cloud 搴旂敤鏍囪瘑锛�
- const top = replaceAppId(text, env.UNI_APPID);
- if (!top.done) fail('manifest.json 涓湭鎵惧埌椤跺眰 "appid" 瀛楁');
- text = top.text;
-
- // 2) mp-weixin 涓嬬殑 appid锛堝井淇″皬绋嬪簭 appid锛夛紝鍙湪璇ュ尯鍧楀唴鏇挎崲绗竴澶�
- const idx = text.indexOf('"mp-weixin"');
- if (idx < 0) fail('manifest.json 涓湭鎵惧埌 "mp-weixin" 閰嶇疆鍧�');
- const scoped = replaceAppId(text.slice(idx), env.APPID);
- if (!scoped.done) fail('manifest.json 鐨� "mp-weixin" 涓湭鎵惧埌 "appid" 瀛楁');
- text = text.slice(0, idx) + scoped.text;
-
- return text;
-}
-
-/** 鏇挎崲 project.config.json 鐨� appid锛堜繚鎸佸師鏍煎紡锛岄伩鍏嶆暣鏂囦欢閲嶆帓锛� */
-function patchProjectConfig(text, env) {
- const res = replaceAppId(text, env.APPID);
- if (!res.done) fail('project.config.json 涓湭鎵惧埌 "appid" 瀛楁');
- return res.text;
-}
-
-function writeIfChanged(file, next) {
- const prev = fs.readFileSync(file, 'utf8');
- if (prev === next) {
- console.log(' - ' + path.relative(ROOT, file) + ' 宸叉槸鐩爣鍊硷紝鏃犻渶鏀瑰姩');
- return false;
- }
- fs.writeFileSync(file, next, 'utf8');
- console.log(' 鈭� ' + path.relative(ROOT, file) + ' 宸叉洿鏂�');
- return true;
}
function main() {
@@ -96,13 +51,11 @@
console.log(' 灏忕▼搴� appid : ' + env.APPID);
console.log(' 鎺ュ彛鍦板潃 : ' + env.HTTP_REQUEST_URL);
- const manifestChanged = writeIfChanged(files.manifest, patchManifest(fs.readFileSync(files.manifest, 'utf8'), env));
- const projectChanged = writeIfChanged(files.projectConfig, patchProjectConfig(fs.readFileSync(files.projectConfig, 'utf8'), env));
- const changed = manifestChanged || projectChanged;
+ const res = manifest.generate(env);
- console.log(changed
+ console.log(res.changed
? '[set-env] 瀹屾垚锛岃鍦� HBuilderX 涓噸鏂扮紪璇戜竴娆★紝骞跺湪寰俊寮�鍙戣�呭伐鍏蜂腑閲嶆柊鎵撳紑椤圭洰'
- : '[set-env] 鏃犻渶鏀瑰姩锛屽綋鍓嶅凡鏄� ' + envName + ' 鐜閰嶇疆');
+ : '[set-env] 鏃犻渶鏀瑰姩锛屽綋鍓� manifest.json 宸叉槸 ' + envName + ' 鐜');
}
main();
--
Gitblit v1.4.0