From 433c5ab2fd2a6fd48fb931b5070b742503a99a6b Mon Sep 17 00:00:00 2001
From: Jacob <hlnie@tohours.com>
Date: 星期五, 23 十月 2026 13:35:07 +0800
Subject: [PATCH] Merge branch 'dev' into sit

---
 scripts/set-env.js |   71 ++++++-----------------------------
 1 files changed, 12 insertions(+), 59 deletions(-)

diff --git a/scripts/set-env.js b/scripts/set-env.js
index 59f3188..26f1280 100644
--- a/scripts/set-env.js
+++ b/scripts/set-env.js
@@ -1,78 +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 鏄紪璇戞湡鍊硷紙HBuilderX 鐨勭紪璇戣緭鍏ュ氨鏄� manifest.json锛夛紝鏃犳硶鍍忔帴鍙e湴鍧�閭f牱
- *   杩愯鏃跺垏鎹紝鎵�浠ヨ繖閲屽仛鈥滀竴娆″懡浠ゅ啓鍥炩�濄�傛敼瀹屽繀椤婚噸鏂扮紪璇戜竴娆★紝浜х墿閲岀殑
- *   project.config.json 鎵嶄細鏇存柊銆�
+ *   manifest.json 鏄� HBuilderX 鐨勭紪璇戣緭鍏ワ紙appid 灞炰簬缂栬瘧鏈熷�硷紝鏃犳硶鍍忔帴鍙e湴鍧�閭f牱杩愯鏃跺垏鎹級锛�
+ *   浣嗗畠鍚幆澧冪浉鍏� appid锛屼笉閫傚悎鐩存帴鎻愪氦锛屾墍浠ワ細
+ *       manifest.json.demo锛堝叆搴撴ā鏉匡級 --鐢熸垚--> manifest.json锛堝凡 .gitignore锛�
+ *   鐢熸垚鍚庡繀椤婚噸鏂扮紪璇戜竴娆★紝骞跺湪寰俊寮�鍙戣�呭伐鍏蜂腑閲嶆柊鎵撳紑椤圭洰锛坅ppid 鍙樻洿闇�閲嶅紑锛夈��
  *
- *   鏃ュ父鎺ㄨ崘锛歮p-weixin.appid 淇濇寔 null锛屽彧璁╁彂琛岃剼鏈洖鍐欎骇鐗� appid锛坓it 闆跺櫔闊筹級銆�
- *   鏈剼鏈敤浜庨渶瑕佸湪 HBuilderX 閲岀洿鎺ヨ繍琛岃皟璇曘�佹垨瑕佸嚭 App 鍖咃紙椤跺眰 appid锛夌殑鍦烘櫙銆�
+ *   濡傞渶鍦� HBuilderX 閲岀洿鎺ョ紪璇�/杩愯璋冭瘯锛屽厛璺戜竴娆℃湰鑴氭湰锛�
+ *   璧板懡浠よ鍙戣鍒欑洿鎺ョ敤 scripts/publish.js锛堝唴閮ㄤ細鑷姩鐢熸垚锛夈��
  *
- *   鍞竴鏁版嵁婧愶細config/env/<env>.js 涓殑 UNI_APPID锛圖Cloud 鏍囪瘑锛夈�丄PPID锛堝皬绋嬪簭 appid锛�
+ *   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');
 
-// 鏍圭洰褰� project.config.json 涓嶅弬涓� mp-weixin 缂栬瘧涓斿凡涓嶅叆搴擄紝杩欓噷鍙淮鎶� manifest.json
-const files = {
-	manifest: path.join(ROOT, 'manifest.json')
-};
-
 function fail(msg) {
 	console.error('[set-env] ' + msg);
 	process.exit(1);
-}
-
-/** 鍙浛鎹㈢涓�澶� "appid" : <瀛楃涓叉垨 null>锛屼繚鐣欏師鏈夌┖鏍�/缂╄繘椋庢牸 */
-function replaceAppId(text, value) {
-	let done = false;
-	const result = text.replace(/"appid"(\s*:\s*)(?:"[^"]*"|null)/, 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 head = text.slice(0, idx);
-	const body = text.slice(idx);
-	const scoped = replaceAppId(body, env.APPID);
-	if (scoped.done) return head + scoped.text;
-
-	// 3) 瀛楁琚垹鎺夋椂锛屾寜鍚岀骇瀛愰」缂╄繘琛ヤ竴琛�
-	const m = body.match(/^("mp-weixin"\s*:\s*\{)(\r?\n)([ \t]*)/);
-	if (!m) fail('manifest.json 鐨� "mp-weixin" 鍧楁牸寮忓紓甯革紝鏃犳硶鍐欏叆 appid');
-	const nl = m[2];
-	const indent = m[3];
-	return head + m[1] + nl + indent + '"appid" : "' + env.APPID + '",' + nl + indent + body.slice(m[0].length);
-}
-
-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() {
@@ -98,11 +51,11 @@
 	console.log('  灏忕▼搴� appid : ' + env.APPID);
 	console.log('  鎺ュ彛鍦板潃     : ' + env.HTTP_REQUEST_URL);
 
-	const changed = writeIfChanged(files.manifest, patchManifest(fs.readFileSync(files.manifest, 'utf8'), env));
+	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