From 504e5322fb3fbecd5c7f88a78acbfb6a125db5cb Mon Sep 17 00:00:00 2001 From: ZF sun <34314687@qq.com> Date: Sat, 9 May 2026 17:21:02 +0800 Subject: [PATCH] =?UTF-8?q?fix(scripts):=20vendor.js=E6=B3=A8=E5=85=A5?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E5=85=88=E6=B8=85=E7=90=86=E6=97=A7=E8=A1=8C?= =?UTF-8?q?=E5=86=8D=E6=B3=A8=E5=85=A5=EF=BC=8C=E7=A1=AE=E4=BF=9D=E5=B9=82?= =?UTF-8?q?=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/mp-weixin.patch.js | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/scripts/mp-weixin.patch.js b/scripts/mp-weixin.patch.js index 8f4118d..979baed 100644 --- a/scripts/mp-weixin.patch.js +++ b/scripts/mp-weixin.patch.js @@ -102,22 +102,22 @@ async function commonPatch(mode = 'production') { let vendorContent = await fsp.readFile(vendorPath, 'utf8'); - const requireLine = 'const site = require("../site");'; - const versionLine = 'const __app_version = require("../version");'; - // 检查文件开头(例如前 1000 字符)是否已经包含这些 require 语句 - const inspectPrefix = vendorContent.slice(0, 1000); - const hasSiteRequire = new RegExp( - '^\\s*const\\s+site\\s*=\\s*require\\s*\\([\'"]\\.\\./site[\'"]\\);?', - 'm' - ).test(inspectPrefix); - const hasVersionRequire = new RegExp( - '^\\s*const\\s+__app_version\\s*=\\s*require\\s*\\([\'"]\\.\\./version[\'"]\\);?', - 'm' - ).test(inspectPrefix); + const requireLines = [ + 'const site = require("../site");', + 'const __app_version = require("../version");' + ]; - if (hasSiteRequire && hasVersionRequire) { - console.log('vendor.js 开头已包含 require 语句,跳过追加。'); - return; + // 清理已有的重复注入(兼容新旧格式:../version.json 和 ../version) + let cleaned = false; + const injectPatterns = [ + /^\s*const\s+site\s*=\s*require\s*\(['"]\.\.\/site(\.js)?['"]\);?\s*\r?\n/gm, + /^\s*const\s+__app_version\s*=\s*require\s*\(['"]\.\.\/version(\.json)?['"]\);?\s*\r?\n/gm, + ]; + for (const pattern of injectPatterns) { + if (pattern.test(vendorContent)) { + vendorContent = vendorContent.replace(pattern, ''); + cleaned = true; + } } // 把 require 语句 + newline 插入文件最前面。 @@ -131,13 +131,9 @@ async function commonPatch(mode = 'production') { vendorContent = vendorContent.slice(1); } - const linesToInject = [requireLine]; - if (!hasVersionRequire) { - linesToInject.push(versionLine); - } - const newContent = prefix + linesToInject.join(eol) + eol + vendorContent; + const newContent = prefix + requireLines.join(eol) + eol + vendorContent; await fsp.writeFile(vendorPath, newContent, 'utf8'); - console.log(`已在 vendor.js 开头追加: ${linesToInject.join(', ')}`); + console.log(cleaned ? `已清理旧注入并重新注入: ${requireLines.join(', ')}` : `已在 vendor.js 开头追加: ${requireLines.join(', ')}`); } catch (err) { console.error('发生错误:', err); process.exitCode = 1;