@tarojs/webpack5-runner 4.2.3-beta.1 → 4.3.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.mini.js +15 -4
- package/dist/index.mini.js.map +1 -1
- package/dist/plugins/AsyncSubPackagePlugin.js +46 -1
- package/dist/plugins/AsyncSubPackagePlugin.js.map +1 -1
- package/dist/plugins/BuildNativePlugin.js +9 -0
- package/dist/plugins/BuildNativePlugin.js.map +1 -1
- package/dist/plugins/HarmonyPlugin.js +3 -1
- package/dist/plugins/HarmonyPlugin.js.map +1 -1
- package/dist/plugins/MiniCompileModePlugin.js +8 -5
- package/dist/plugins/MiniCompileModePlugin.js.map +1 -1
- package/dist/plugins/MiniPlugin.js +73 -21
- package/dist/plugins/MiniPlugin.js.map +1 -1
- package/dist/plugins/SubPackageIndiePlugin.js +42 -4
- package/dist/plugins/SubPackageIndiePlugin.js.map +1 -1
- package/dist/plugins/TaroInjectSyncCorePlugin.js +39 -0
- package/dist/plugins/TaroInjectSyncCorePlugin.js.map +1 -0
- package/dist/plugins/TaroLoadChunksPlugin.js +27 -1
- package/dist/plugins/TaroLoadChunksPlugin.js.map +1 -1
- package/dist/shared-runtime/app-shim.js +305 -0
- package/dist/shared-runtime/async-provider.js +153 -0
- package/dist/shared-runtime/build-shared-runtime.js +479 -0
- package/dist/shared-runtime/build-shared-runtime.js.map +1 -0
- package/dist/shared-runtime/constants.js +51 -0
- package/dist/shared-runtime/constants.js.map +1 -0
- package/dist/shared-runtime/entry.sync.js +102 -0
- package/dist/shared-runtime/externals.js +96 -0
- package/dist/shared-runtime/externals.js.map +1 -0
- package/dist/shared-runtime/scan-imperative-api.js +267 -0
- package/dist/shared-runtime/scan-imperative-api.js.map +1 -0
- package/dist/template/comp-new-blended.js +5 -0
- package/dist/utils/platform.js +12 -0
- package/dist/utils/platform.js.map +1 -0
- package/dist/utils/webpack.js +42 -1
- package/dist/utils/webpack.js.map +1 -1
- package/dist/webpack/HarmonyWebpackPlugin.js +1 -3
- package/dist/webpack/HarmonyWebpackPlugin.js.map +1 -1
- package/dist/webpack/MiniCombination.js +51 -26
- package/dist/webpack/MiniCombination.js.map +1 -1
- package/dist/webpack/MiniWebpackPlugin.js +17 -1
- package/dist/webpack/MiniWebpackPlugin.js.map +1 -1
- package/package.json +15 -13
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-shared-runtime.js","sourceRoot":"","sources":["../../src/shared-runtime/build-shared-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** 共享运行时(split 模式)相关常量 */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.SYNC_CORE_REGISTERED_RUNTIMES = exports.REG_POST = exports.SHARED_ASYNC_PROVIDER_NAME = exports.SHARED_ASYNC_ROOT = exports.SHARED_SYNC_CORE_NAME = exports.SHARED_GLOBAL_ASYNC = exports.RUNTIME_GLOBAL_VERSION = void 0;
|
|
5
|
+
/**
|
|
6
|
+
* 运行时共享协议版本号(手动维护的破坏性变更计数,与 Taro 包版本无关)。
|
|
7
|
+
* 仅当挂到全局的运行时接口发生破坏性变更时才 +1。
|
|
8
|
+
* 全局名与异步核子包名都由它拼出,bump 时只改这一处:
|
|
9
|
+
* 老业务包仍读旧版本全局名、V1/V2 provider 子包不撞名,可在同一宿主真隔离共存。
|
|
10
|
+
*/
|
|
11
|
+
exports.RUNTIME_GLOBAL_VERSION = 1;
|
|
12
|
+
/**
|
|
13
|
+
* 挂运行时的全局对象名(wx 下)。业务包 external 目标 + 同步核/异步核挂载点。
|
|
14
|
+
* 形如 __TARO_RT_ASYNC_V1__。
|
|
15
|
+
*/
|
|
16
|
+
exports.SHARED_GLOBAL_ASYNC = `__TARO_RT_ASYNC_V${exports.RUNTIME_GLOBAL_VERSION}__`;
|
|
17
|
+
/**
|
|
18
|
+
* 同步核产物文件名(不含 .js),emit 到 outputDir 根,随业务包。
|
|
19
|
+
* 业务包 app.js 顶层同步 require 它,先于任何页面注册执行。
|
|
20
|
+
*/
|
|
21
|
+
exports.SHARED_SYNC_CORE_NAME = 'taro-shared-sync';
|
|
22
|
+
/**
|
|
23
|
+
* 异步核共享子包 root(app.json subPackages 注册;require.async 目标)。
|
|
24
|
+
* 全局共享一份,形如 shared-async-v1。
|
|
25
|
+
*/
|
|
26
|
+
exports.SHARED_ASYNC_ROOT = `shared-async-v${exports.RUNTIME_GLOBAL_VERSION}`;
|
|
27
|
+
/** 异步核 provider 产物文件名(不含 .js),emit 到 SHARED_ASYNC_ROOT 下。 */
|
|
28
|
+
exports.SHARED_ASYNC_PROVIDER_NAME = 'async-provider';
|
|
29
|
+
/**
|
|
30
|
+
* taro-loader 的 runtimePath `post:` 前缀(镜像 taro-loader/src/constants.ts 的 REG_POST)。
|
|
31
|
+
* 这里单独定义而非 import:taro-loader 是编译期 loader 包,跨已编译包 import 常量不稳妥,
|
|
32
|
+
* 且此正则极简、语义固定,就地镜像一份即可。改动时两处保持一致。
|
|
33
|
+
*/
|
|
34
|
+
exports.REG_POST = /^post:/;
|
|
35
|
+
/**
|
|
36
|
+
* 同步核 entry.sync.js 已静态 require 并 share() 到共享全局的「runtime 类」模块清单。
|
|
37
|
+
* computeMissingRuntimes 用它做差集:platform.runtimePath 里已在此清单的(如平台 runtime)
|
|
38
|
+
* 无需再作为额外入口重复打进同步核。
|
|
39
|
+
*
|
|
40
|
+
* ⚠️ 改动 entry.sync.js 里 require 的平台/运行时模块清单时必须同步此常量
|
|
41
|
+
* (tests/shouldShareExternal.spec.ts 有一致性守护单测防漂移)。
|
|
42
|
+
* 注:react 全家桶虽也在 entry.sync.js 同步 require,但它们不属于 platform.runtimePath
|
|
43
|
+
* (runtimePath 只承载 @tarojs/* 平台与插件 runtime),不会进 computeMissingRuntimes 的输入,
|
|
44
|
+
* 故不必列入此清单。
|
|
45
|
+
*/
|
|
46
|
+
exports.SYNC_CORE_REGISTERED_RUNTIMES = [
|
|
47
|
+
'@tarojs/runtime',
|
|
48
|
+
'@tarojs/shared',
|
|
49
|
+
'@tarojs/plugin-platform-weapp/dist/runtime',
|
|
50
|
+
];
|
|
51
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/shared-runtime/constants.ts"],"names":[],"mappings":";AAAA,0BAA0B;;;AAE1B;;;;;GAKG;AACU,QAAA,sBAAsB,GAAG,CAAC,CAAA;AAEvC;;;GAGG;AACU,QAAA,mBAAmB,GAAG,oBAAoB,8BAAsB,IAAI,CAAA;AAEjF;;;GAGG;AACU,QAAA,qBAAqB,GAAG,kBAAkB,CAAA;AAEvD;;;GAGG;AACU,QAAA,iBAAiB,GAAG,iBAAiB,8BAAsB,EAAE,CAAA;AAE1E,6DAA6D;AAChD,QAAA,0BAA0B,GAAG,gBAAgB,CAAA;AAE1D;;;;GAIG;AACU,QAAA,QAAQ,GAAG,QAAQ,CAAA;AAEhC;;;;;;;;;;GAUG;AACU,QAAA,6BAA6B,GAAsB;IAC9D,iBAAiB;IACjB,gBAAgB;IAChB,4CAA4C;CAC7C,CAAA"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/* global __TARO_GLOBAL_OBJECT__, __TARO_SHARED_GLOBAL__, __TARO_SHARED_ASYNC_REQUEST__, __TARO_RUNTIME_VERSION__ */
|
|
2
|
+
/**
|
|
3
|
+
* 共享运行时(split 模式) · 同步核(sync-core)入口
|
|
4
|
+
*
|
|
5
|
+
* 随业务包,在业务 app.js 顶层被同步 require。职责:
|
|
6
|
+
* 1. 同步填「页面注册必需」的真身:@tarojs/runtime + @tarojs/shared + 平台 runtime
|
|
7
|
+
* 2. react 本体进同步核(业务 app.js 顶层 `class App extends React.Component` 需它同步就位)
|
|
8
|
+
* 3. 为异步才到的包预放占位对象(react-dom/framework/taro),真身到达后原地 mutate 同一对象
|
|
9
|
+
* 4. 装 Current.app 占位 shim(app-shim)
|
|
10
|
+
* 5. require.async 拉 shared-async 子包,到达后激活真身
|
|
11
|
+
*
|
|
12
|
+
* 多业务包共享(共享运行时核心价值场景):同一宿主小程序可集成多个独立编译的 Taro 业务包,
|
|
13
|
+
* 各业务包 app.js 顶层都会 require 本文件(本文件在每包产物 outputDir 根各一份,模块 CJS
|
|
14
|
+
* 缓存作用域仅限本包内,跨包不共享缓存)。首包 require 时完整执行装占位 + 触发异步核;
|
|
15
|
+
* 后续包 require 时通过 shared.__syncCoreInstalled 幂等守卫**整体早退**,不重装占位、
|
|
16
|
+
* 不主动重置 Current.app、不重复触发 require.async(webpack require.async 有内部缓存亦无副作用)。
|
|
17
|
+
*
|
|
18
|
+
* 架构约束——后加载业务包 App 胜出(last-writer):
|
|
19
|
+
* 后续业务包 app.js 顶层 `createReactApp(App_N, ...)` 仍会执行:
|
|
20
|
+
* - 若异步核尚未激活: fw.createReactApp 是占位版,`shared.__appBootstrap` 被覆盖为
|
|
21
|
+
* 最后一包的 App+config,异步核激活时 __activateReal 用最后一包的 App 建 realAppObj。
|
|
22
|
+
* - 若异步核已激活: fw.createReactApp 已被 provider fill 为真身,后续调用直接进 framework
|
|
23
|
+
* 的原生 createReactApp,内部 `Current.app = new_appObj` 无守卫覆盖(见
|
|
24
|
+
* packages/taro-framework-react/src/runtime/connect.ts:434)。
|
|
25
|
+
* 此语义**与 Taro 单份 runtime 内 framework createReactApp 原生行为一致**——不是共享运行时
|
|
26
|
+
* 引入的新约束,而是保持与非共享模式的语义连续。非共享模式下每包各自一份 Current 实例
|
|
27
|
+
* (packages/taro-runtime/src/current.ts:20),跨包不交互;共享模式下多包塞进一份 Current
|
|
28
|
+
* 时,按原生"就近赋值"语义,最后加载的包成为当前活跃 App。
|
|
29
|
+
*
|
|
30
|
+
* Caveat: mount 队列错位。app-shim 的 whenReal 队列缓存了页面 mount/lifecycle,若 A 页面已
|
|
31
|
+
* 入队、B 后加载成为 last-writer,__activateReal 用 B 的 App 建 realAppObj,A 的页面挂到
|
|
32
|
+
* B 的 AppWrapper 上。此矛盾根源是"多包共用一个 AppWrapper",无论 first/last 策略都存在,
|
|
33
|
+
* 真正的解是多 App 隔离(按业务包路由分派 + 多 App 表),属于后续独立扩展。
|
|
34
|
+
*
|
|
35
|
+
* 全局对象 / 全局名 / 异步核请求路径由 DefinePlugin 注入的宏提供(单一来源为 constants.ts + globalObject 配置):
|
|
36
|
+
* __TARO_GLOBAL_OBJECT__ 全局对象标识符(标识符,非字符串),如 wx
|
|
37
|
+
* __TARO_SHARED_GLOBAL__ 全局键名(字符串),如 '__TARO_RT_ASYNC_V1__'
|
|
38
|
+
* __TARO_SHARED_ASYNC_REQUEST__ 异步核 require.async 目标(字符串),如 'shared-async-v1/index'
|
|
39
|
+
* __TARO_RUNTIME_VERSION__ 运行时协议版本号(数值),供异步核做版本一致性校验
|
|
40
|
+
*
|
|
41
|
+
* 注:本文件由 runner 的 provider 子构建打包,react/@tarojs/* 从用户项目 node_modules 解析。
|
|
42
|
+
*/
|
|
43
|
+
var GLOBAL_KEY = __TARO_SHARED_GLOBAL__
|
|
44
|
+
var shared = (__TARO_GLOBAL_OBJECT__[GLOBAL_KEY] = __TARO_GLOBAL_OBJECT__[GLOBAL_KEY] || {})
|
|
45
|
+
|
|
46
|
+
// 幂等守卫:首包完整跑;后续包跳过全部装占位/触发异步核逻辑,保护首包已就位的
|
|
47
|
+
// runtime/react 真身、Current.app、__rtVersion 不被覆盖。
|
|
48
|
+
if (!shared.__syncCoreInstalled) {
|
|
49
|
+
shared.__syncCoreInstalled = true
|
|
50
|
+
|
|
51
|
+
// 记录本同步核编译时的运行时协议版本,供异步核校验(避免同步核与异步核跨版本错配)。
|
|
52
|
+
// 首包设置,后续包因幂等跳过——多包版本不一时以首包为准。
|
|
53
|
+
shared.__rtVersion = __TARO_RUNTIME_VERSION__
|
|
54
|
+
|
|
55
|
+
// 多包 App 隔离表(共享运行时(split 模式) F5):每个业务包的 realApp 存进 __pkgApps[pkgId],
|
|
56
|
+
// page loader 产物在 onLoad 前查回本包 App,恢复非共享运行时下"页面永远 mount 到本包 App"
|
|
57
|
+
// 的语义(见 packages/taro-webpack5-runner/docs/shared-runtime-scope.md)。
|
|
58
|
+
shared.__pkgApps = shared.__pkgApps || {}
|
|
59
|
+
|
|
60
|
+
// F6 native-components 隔离表:每个 native-comp 业务包的 Entry(App)存进
|
|
61
|
+
// __nativeComponentApps[pkgId],createNativeComponentConfig 里按 pkgId 查回,
|
|
62
|
+
// 与 __pkgApps 平行(pages 与 native-comps 各自独立表,互不影响)。
|
|
63
|
+
shared.__nativeComponentApps = shared.__nativeComponentApps || {}
|
|
64
|
+
|
|
65
|
+
var share = function (name, mod) { if (!shared[name]) shared[name] = mod }
|
|
66
|
+
|
|
67
|
+
// ---- 1. 同步真身 ----
|
|
68
|
+
var runtime = require('@tarojs/runtime')
|
|
69
|
+
var platformRuntime = require('@tarojs/plugin-platform-weapp/dist/runtime')
|
|
70
|
+
// 副作用:mergeReconciler / mergeInternalComponents
|
|
71
|
+
share('@tarojs/runtime', runtime)
|
|
72
|
+
share('@tarojs/shared', require('@tarojs/shared'))
|
|
73
|
+
|
|
74
|
+
share('@tarojs/plugin-platform-weapp/dist/runtime', platformRuntime)
|
|
75
|
+
|
|
76
|
+
var Current = runtime.Current
|
|
77
|
+
|
|
78
|
+
// ---- 2. react 本体进同步核(仅 ~9KB)----
|
|
79
|
+
// 单一真理源:externals.ts::SYNC_REACT_MEMBERS。webpack CommonJS 静态分析要求 require 参数为
|
|
80
|
+
// 字面量字符串(否则模块无法被打包),故此处不能用宏展开或数组遍历——改这三行时必须同步
|
|
81
|
+
// externals.ts 里的 SYNC_REACT_MEMBERS 常量,两处一致。
|
|
82
|
+
share('react', require('react'))
|
|
83
|
+
share('react/jsx-runtime', require('react/jsx-runtime'))
|
|
84
|
+
// 开发模式下自动 JSX runtime 会请求 react/jsx-dev-runtime,一并同步注册,避免 dev 构建拿到 undefined。
|
|
85
|
+
share('react/jsx-dev-runtime', require('react/jsx-dev-runtime'))
|
|
86
|
+
|
|
87
|
+
// ---- 3+4. framework-runtime / @tarojs/taro / react-dom 占位(带排队与未就位保护)----
|
|
88
|
+
require('./app-shim.js').install(shared, Current)
|
|
89
|
+
|
|
90
|
+
// ---- 5. 触发异步核加载:require.async 拉 shared-async 子包,到达后激活真身 ----
|
|
91
|
+
// 小程序只支持 require.async(注册过的分包路径),不支持 import().then。
|
|
92
|
+
// 该请求由 webpack config 配成 promise-external,编译成 require.async(相对路径)。
|
|
93
|
+
require(__TARO_SHARED_ASYNC_REQUEST__).then(function () {
|
|
94
|
+
if (typeof shared.__activateAsync === 'function') {
|
|
95
|
+
shared.__activateAsync()
|
|
96
|
+
} else {
|
|
97
|
+
console.error('[taro-shared] shared-async 已加载但 __activateAsync 缺失')
|
|
98
|
+
}
|
|
99
|
+
}).catch(function (e) {
|
|
100
|
+
console.error('[taro-shared] require.async shared-async 失败 >>>', (e && e.errMsg) || (e && e.message) || e)
|
|
101
|
+
})
|
|
102
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.computeMissingRuntimes = exports.shouldShareExternal = exports.ALL_REACT_MEMBERS = exports.ASYNC_REACT_MEMBERS = exports.SYNC_REACT_MEMBERS = exports.REG_SHARED_REACT = void 0;
|
|
4
|
+
const helper_1 = require("@tarojs/helper");
|
|
5
|
+
const constants_1 = require("./constants");
|
|
6
|
+
/**
|
|
7
|
+
* 共享运行时(split 模式)需 external 到共享全局的 React 全家桶。
|
|
8
|
+
* 这四个包 React 单例敏感、版本错配会真出错,必须共享同一实例:
|
|
9
|
+
* react 本体/jsx-runtime 在同步核,react-dom/react-reconciler/scheduler 在异步核,
|
|
10
|
+
* 但对业务包而言都 external 到同一个全局对象,由运行时核在加载时注册齐全。
|
|
11
|
+
*/
|
|
12
|
+
exports.REG_SHARED_REACT = /^(react|react-dom|react-reconciler|scheduler)(\/|$)/;
|
|
13
|
+
/**
|
|
14
|
+
* React 全家桶各成员在共享运行时中的分工——单一真理源,所有 runner 侧引用都从这里取。
|
|
15
|
+
*
|
|
16
|
+
* SYNC_REACT_MEMBERS:随同步核打包并 share() 到全局。
|
|
17
|
+
* 业务 app.js 顶层 `class App extends React.Component` 需 react 本体同步就位;
|
|
18
|
+
* dev 构建启用自动 JSX runtime 时需 react/jsx-dev-runtime 同步就位。
|
|
19
|
+
*
|
|
20
|
+
* ASYNC_REACT_MEMBERS:随异步核 provider 打包并 share() 到全局。
|
|
21
|
+
* 业务包 external 了这两个,真身在异步核内,须显式挂全局,否则 require 拿到 undefined。
|
|
22
|
+
*
|
|
23
|
+
* 注:entry.sync.js 是手写 .js 模板由 webpack 打包,`require(...)` 的 arg 必须是字面量
|
|
24
|
+
* 才能被静态分析——无法用宏展开成动态数组遍历。故 entry.sync.js 里 react/jsx-runtime/
|
|
25
|
+
* jsx-dev-runtime 的 require 仍是字面量;改动本清单时必须同步 entry.sync.js。
|
|
26
|
+
*/
|
|
27
|
+
exports.SYNC_REACT_MEMBERS = ['react', 'react/jsx-runtime', 'react/jsx-dev-runtime'];
|
|
28
|
+
exports.ASYNC_REACT_MEMBERS = ['react-reconciler', 'scheduler'];
|
|
29
|
+
/** React 全家桶所有需注册到共享全局的 key(同步 + 异步),用于 provider 的 reverseExternals 构造 */
|
|
30
|
+
exports.ALL_REACT_MEMBERS = [...exports.SYNC_REACT_MEMBERS, ...exports.ASYNC_REACT_MEMBERS, 'react-dom'];
|
|
31
|
+
/**
|
|
32
|
+
* 判断一个模块请求是否应被 external 到共享运行时全局(共享运行时(split 模式))。
|
|
33
|
+
* @param request 裸模块请求名,如 'react'、'@tarojs/runtime'
|
|
34
|
+
* @param extraPackages 接入方声明的额外共享包(config.mini.sharedRuntimeExtraPackages)
|
|
35
|
+
*/
|
|
36
|
+
function shouldShareExternal(request, extraPackages = []) {
|
|
37
|
+
if (!request)
|
|
38
|
+
return false;
|
|
39
|
+
// 只处理裸模块请求:排除内联 loader(!)、query(?)、相对/绝对路径
|
|
40
|
+
if (/[!?]/.test(request) || request.startsWith('.') || request.startsWith('/'))
|
|
41
|
+
return false;
|
|
42
|
+
// @tarojs/taro-loader 是编译期 loader,不能 external
|
|
43
|
+
if (request.startsWith('@tarojs/taro-loader'))
|
|
44
|
+
return false;
|
|
45
|
+
// @tarojs/components 不能 external:Taro 的 base.wxml 模板收集依赖组件在编译模块图中可见,
|
|
46
|
+
// external 后模板生成器扫不到组件使用会漏生成模板(如 Button 的 tmpl_0_14)。
|
|
47
|
+
// 且组件本身是 'view'/'button' 字符串常量,体积极小,各业务包自带无成本。
|
|
48
|
+
if (request === helper_1.taroJsComponents || request.startsWith(`${helper_1.taroJsComponents}/`))
|
|
49
|
+
return false;
|
|
50
|
+
// 接入方声明的额外共享包(CLI 不认识具体包名,由 config.mini.sharedRuntimeExtraPackages 传入)
|
|
51
|
+
if (extraPackages.some((p) => request === p || request.startsWith(`${p}/`)))
|
|
52
|
+
return true;
|
|
53
|
+
return helper_1.REG_TARO_SCOPED_PACKAGE.test(request) || exports.REG_SHARED_REACT.test(request);
|
|
54
|
+
}
|
|
55
|
+
exports.shouldShareExternal = shouldShareExternal;
|
|
56
|
+
/**
|
|
57
|
+
* 计算「被主构建 external 到共享全局、却没有任何运行时核注册」的漏网 runtime。
|
|
58
|
+
*
|
|
59
|
+
* 背景:平台插件(@tarojs/plugin-html / plugin-inject / plugin-http / *-devtools 等)通过
|
|
60
|
+
* `platform.runtimePath.push(...)` 往 runtimePath 追加自己的 side-effect runtime(如 plugin-html
|
|
61
|
+
* 的 `hooks.tap('modifyHydrateData')` 把 <i> 等 HTML 标签 nodeName 映射成 view/text)。taro-loader
|
|
62
|
+
* 把 runtimePath 每项生成 `import '<path>'` 注入业务 app.js。共享运行时下这些 @tarojs/* 被
|
|
63
|
+
* shouldShareExternal 无差别 external 成读全局,但同步核/异步核只注册了固定清单(见
|
|
64
|
+
* SYNC_CORE_REGISTERED_RUNTIMES + async-provider),漏掉这些插件 runtime → 业务包读到 undefined
|
|
65
|
+
* → hook 从未注册 → 出现 `Template tmpl_0_i not found` 等运行时症状。
|
|
66
|
+
*
|
|
67
|
+
* 本函数挑出这批漏网模块,交给 build-shared-runtime 作为同步核的额外入口一并打包执行,使其
|
|
68
|
+
* hooks.tap 在同步核内(与模板消费方同一 @tarojs/shared 单例)就位。不硬编码任何插件名。
|
|
69
|
+
*
|
|
70
|
+
* @param runtimePath combination.config.runtimePath(插件追加后的完整值,string | string[])
|
|
71
|
+
* @param extraPackages config.mini.sharedRuntimeExtraPackages(已被异步核显式接管,需排除)
|
|
72
|
+
* @param syncExtraPackages config.mini.sharedRuntimeSyncExtraPackages(已被同步核显式接管,需排除)
|
|
73
|
+
*/
|
|
74
|
+
function computeMissingRuntimes(runtimePath, extraPackages = [], syncExtraPackages = []) {
|
|
75
|
+
const list = (Array.isArray(runtimePath) ? runtimePath : [runtimePath])
|
|
76
|
+
.filter((p) => typeof p === 'string' && p.length > 0)
|
|
77
|
+
// 剥离 taro-loader 的 post: 前缀(其语义是业务 app.js import 排序,与同步核内执行序无关)
|
|
78
|
+
.map((p) => p.replace(constants_1.REG_POST, ''));
|
|
79
|
+
const registered = new Set(constants_1.SYNC_CORE_REGISTERED_RUNTIMES);
|
|
80
|
+
const claimed = new Set([...extraPackages, ...syncExtraPackages]);
|
|
81
|
+
const seen = new Set();
|
|
82
|
+
const result = [];
|
|
83
|
+
for (const p of list) {
|
|
84
|
+
if (seen.has(p))
|
|
85
|
+
continue;
|
|
86
|
+
seen.add(p);
|
|
87
|
+
// 只挑「会被主构建 external 的 @tarojs/*」(=运行时核需负责提供的),排除平台 runtime(已注册)
|
|
88
|
+
// 与已被 extra/syncExtra 显式接管的,剩下的即漏网。
|
|
89
|
+
if (shouldShareExternal(p, [...extraPackages, ...syncExtraPackages]) && !registered.has(p) && !claimed.has(p)) {
|
|
90
|
+
result.push(p);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return result;
|
|
94
|
+
}
|
|
95
|
+
exports.computeMissingRuntimes = computeMissingRuntimes;
|
|
96
|
+
//# sourceMappingURL=externals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"externals.js","sourceRoot":"","sources":["../../src/shared-runtime/externals.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.warnTopLevelImperativeApi = exports.scanCode = exports.findTaroBindings = void 0;
|
|
27
|
+
const path = __importStar(require("node:path"));
|
|
28
|
+
const helper_1 = require("@tarojs/helper");
|
|
29
|
+
/**
|
|
30
|
+
* 共享运行时(split 模式) 编译期告警:扫描业务源码中【模块顶层作用域】的 Taro 命令式 API 同步调用。
|
|
31
|
+
*
|
|
32
|
+
* 背景:split 模式下 @tarojs/taro 命令式 API 在异步核,模块顶层(早于异步核到位)同步调用会拿到
|
|
33
|
+
* 占位 Proxy(告警 + 空操作)而非真身。运行时 Proxy 只在代码被执行到时告警,藏在少走分支里的顶层
|
|
34
|
+
* 调用可能线上才暴露。此扫描把风险提前到编译期,仅告警、不阻断。
|
|
35
|
+
*
|
|
36
|
+
* 判定(粗筛,宁可漏报不误报):逐行剥离字符串/注释后,只看【顶层缩进(花括号深度为 0)】的行。
|
|
37
|
+
* 覆盖两类导入形态(修正早期只认默认导入的漏报):
|
|
38
|
+
* - 命名空间/默认导入:`import Taro from '@tarojs/taro'` / `const Taro = require('@tarojs/taro')`
|
|
39
|
+
* → 顶层出现 `Taro.method(` 且 method 非 hooks(use 开头)时告警。
|
|
40
|
+
* - 具名导入(含别名):`import { showToast, getSystemInfoSync as g } from '@tarojs/taro'`
|
|
41
|
+
* / `const { showToast } = require('@tarojs/taro')`
|
|
42
|
+
* → 顶层出现 `showToast(` / `g(` 这类裸调用且非 hooks 时告警。
|
|
43
|
+
* 函数体/组件体内(深度>0)不报。
|
|
44
|
+
*/
|
|
45
|
+
const HOOK_PREFIX = /^use[A-Z]/;
|
|
46
|
+
// 匹配 `标识符.方法(`(含可选链 ?.),捕获 [对象名, 方法名]
|
|
47
|
+
const MEMBER_CALL_RE = /\b([A-Za-z_$][\w$]*)\s*\??\.\s*([A-Za-z_$][\w$]*)\s*\??\.?\s*\(/g;
|
|
48
|
+
// 匹配裸函数调用 `标识符(`(用于具名导入的直接调用),捕获 [函数名]
|
|
49
|
+
const BARE_CALL_RE = /(?:^|[^.\w$])([A-Za-z_$][\w$]*)\s*\??\.?\s*\(/g;
|
|
50
|
+
/**
|
|
51
|
+
* 判定同行 match 位置之前是否处于"延迟执行"上下文。
|
|
52
|
+
* 覆盖顶层但**不在导入时立即执行**的常见写法(避免噪声告警侵蚀信任):
|
|
53
|
+
* const f = () => Taro.showToast() // 箭头函数体
|
|
54
|
+
* const f = () => { showToast() } // 单行箭头体
|
|
55
|
+
* const f = function() { Taro.x() } // 函数表达式体
|
|
56
|
+
* Taro.x(() => Taro.y()) // 外层立即、内层延迟(逐 match 判定)
|
|
57
|
+
* 只要 match 之前同行出现 `=>` 或 `function` 关键字,即认为在延迟上下文,跳过。
|
|
58
|
+
*/
|
|
59
|
+
function isDeferredContext(prefix) {
|
|
60
|
+
if (prefix.includes('=>'))
|
|
61
|
+
return true;
|
|
62
|
+
if (/\bfunction\b/.test(prefix))
|
|
63
|
+
return true;
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* 解析文件里对 @tarojs/taro 的各种导入形态,收集命名空间名与具名本地名。
|
|
68
|
+
* 覆盖:ESM 默认/命名空间/具名(含 as 别名)、CJS require 默认/解构(含 : 重命名)。
|
|
69
|
+
*/
|
|
70
|
+
function findTaroBindings(code) {
|
|
71
|
+
const namespaces = new Set();
|
|
72
|
+
const named = new Set();
|
|
73
|
+
// import ... from '@tarojs/taro'
|
|
74
|
+
const reImport = /import\s+([^'"]+?)\s+from\s*['"]@tarojs\/taro['"]/g;
|
|
75
|
+
let m;
|
|
76
|
+
while ((m = reImport.exec(code))) {
|
|
77
|
+
parseImportClause(m[1], namespaces, named);
|
|
78
|
+
}
|
|
79
|
+
// const/let/var X = require('@tarojs/taro') | const { a, b: c } = require('@tarojs/taro')
|
|
80
|
+
const reRequire = /(?:const|let|var)\s+(\{[^}]*\}|[A-Za-z_$][\w$]*)\s*=\s*require\(\s*['"]@tarojs\/taro['"]\s*\)/g;
|
|
81
|
+
while ((m = reRequire.exec(code))) {
|
|
82
|
+
const binding = m[1].trim();
|
|
83
|
+
if (binding.startsWith('{')) {
|
|
84
|
+
parseNamedList(binding.slice(1, -1), named);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
namespaces.add(binding);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return { namespaces, named };
|
|
91
|
+
}
|
|
92
|
+
exports.findTaroBindings = findTaroBindings;
|
|
93
|
+
/** 解析 import 子句:`Taro` / `Taro, { a, b as c }` / `{ a, b as c }` / `* as Taro` */
|
|
94
|
+
function parseImportClause(clause, namespaces, named) {
|
|
95
|
+
clause = clause.trim();
|
|
96
|
+
// 具名部分 { ... }
|
|
97
|
+
const braceMatch = clause.match(/\{([^}]*)\}/);
|
|
98
|
+
if (braceMatch) {
|
|
99
|
+
parseNamedList(braceMatch[1], named);
|
|
100
|
+
}
|
|
101
|
+
// 去掉具名部分后的剩余:默认名 / * as name
|
|
102
|
+
const rest = clause.replace(/\{[^}]*\}/, '').replace(/,/g, ' ').trim();
|
|
103
|
+
const nsAs = rest.match(/\*\s+as\s+([A-Za-z_$][\w$]*)/);
|
|
104
|
+
if (nsAs) {
|
|
105
|
+
namespaces.add(nsAs[1]);
|
|
106
|
+
}
|
|
107
|
+
else if (rest) {
|
|
108
|
+
const def = rest.match(/^([A-Za-z_$][\w$]*)/);
|
|
109
|
+
if (def)
|
|
110
|
+
namespaces.add(def[1]);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/** 解析具名列表 `a, b as c, d: e`,取本地名(as/: 后的名字,否则原名) */
|
|
114
|
+
function parseNamedList(list, named) {
|
|
115
|
+
list.split(',').forEach((item) => {
|
|
116
|
+
const seg = item.trim();
|
|
117
|
+
if (!seg)
|
|
118
|
+
return;
|
|
119
|
+
const asMatch = seg.match(/(?:\bas\b|:)\s*([A-Za-z_$][\w$]*)/);
|
|
120
|
+
if (asMatch) {
|
|
121
|
+
named.add(asMatch[1]);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
const name = seg.match(/^([A-Za-z_$][\w$]*)/);
|
|
125
|
+
if (name)
|
|
126
|
+
named.add(name[1]);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
/** 极简剥离:块注释外的行注释、字符串字面量替换为空白,降低误报。不追求完备。 */
|
|
131
|
+
function stripNoise(line) {
|
|
132
|
+
let s = line.replace(/\/\/.*$/, '');
|
|
133
|
+
s = s.replace(/(['"`])(?:\\.|(?!\1).)*\1/g, '""');
|
|
134
|
+
return s;
|
|
135
|
+
}
|
|
136
|
+
function scanCode(code, filePath = '<inline>') {
|
|
137
|
+
const hits = [];
|
|
138
|
+
if (!/@tarojs\/taro/.test(code))
|
|
139
|
+
return hits;
|
|
140
|
+
const { namespaces, named } = findTaroBindings(code);
|
|
141
|
+
if (!namespaces.size && !named.size)
|
|
142
|
+
return hits;
|
|
143
|
+
const lines = code.split('\n');
|
|
144
|
+
let depth = 0; // 花括号深度;0 = 模块顶层
|
|
145
|
+
let inBlockComment = false;
|
|
146
|
+
for (let i = 0; i < lines.length; i++) {
|
|
147
|
+
let raw = lines[i];
|
|
148
|
+
if (inBlockComment) {
|
|
149
|
+
const end = raw.indexOf('*/');
|
|
150
|
+
if (end === -1)
|
|
151
|
+
continue;
|
|
152
|
+
raw = raw.slice(end + 2);
|
|
153
|
+
inBlockComment = false;
|
|
154
|
+
}
|
|
155
|
+
const bcStart = raw.indexOf('/*');
|
|
156
|
+
if (bcStart !== -1 && raw.indexOf('*/', bcStart) === -1) {
|
|
157
|
+
raw = raw.slice(0, bcStart);
|
|
158
|
+
inBlockComment = true;
|
|
159
|
+
}
|
|
160
|
+
const line = stripNoise(raw);
|
|
161
|
+
if (depth === 0) {
|
|
162
|
+
// 成员调用:namespaces 名下的 .method()
|
|
163
|
+
MEMBER_CALL_RE.lastIndex = 0;
|
|
164
|
+
let cm;
|
|
165
|
+
while ((cm = MEMBER_CALL_RE.exec(line))) {
|
|
166
|
+
const obj = cm[1];
|
|
167
|
+
const method = cm[2];
|
|
168
|
+
if (namespaces.has(obj) && !HOOK_PREFIX.test(method)) {
|
|
169
|
+
// 跳过延迟上下文(顶层箭头/函数体内):`const f = () => Taro.showToast()` 不该报
|
|
170
|
+
if (isDeferredContext(line.slice(0, cm.index)))
|
|
171
|
+
continue;
|
|
172
|
+
hits.push({ file: filePath, line: i + 1, code: raw.trim(), api: `${obj}.${method}` });
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// 裸调用:具名导入的本地名直接调用
|
|
176
|
+
if (named.size) {
|
|
177
|
+
BARE_CALL_RE.lastIndex = 0;
|
|
178
|
+
let bm;
|
|
179
|
+
while ((bm = BARE_CALL_RE.exec(line))) {
|
|
180
|
+
const fn = bm[1];
|
|
181
|
+
if (named.has(fn) && !HOOK_PREFIX.test(fn)) {
|
|
182
|
+
if (isDeferredContext(line.slice(0, bm.index)))
|
|
183
|
+
continue;
|
|
184
|
+
hits.push({ file: filePath, line: i + 1, code: raw.trim(), api: fn });
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
for (let c = 0; c < line.length; c++) {
|
|
190
|
+
if (line[c] === '{')
|
|
191
|
+
depth++;
|
|
192
|
+
else if (line[c] === '}')
|
|
193
|
+
depth = Math.max(0, depth - 1);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return hits;
|
|
197
|
+
}
|
|
198
|
+
exports.scanCode = scanCode;
|
|
199
|
+
function scanFile(filePath) {
|
|
200
|
+
let code;
|
|
201
|
+
try {
|
|
202
|
+
code = helper_1.fs.readFileSync(filePath, 'utf-8');
|
|
203
|
+
}
|
|
204
|
+
catch (_a) {
|
|
205
|
+
return [];
|
|
206
|
+
}
|
|
207
|
+
return scanCode(code, filePath);
|
|
208
|
+
}
|
|
209
|
+
function walk(dir, exts, acc, depth = 0) {
|
|
210
|
+
// 深度上限:防符号链接环路导致栈溢出
|
|
211
|
+
if (depth > 32)
|
|
212
|
+
return;
|
|
213
|
+
let entries;
|
|
214
|
+
try {
|
|
215
|
+
entries = helper_1.fs.readdirSync(dir);
|
|
216
|
+
}
|
|
217
|
+
catch (_a) {
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
for (const name of entries) {
|
|
221
|
+
if (name === 'node_modules' || name.startsWith('.'))
|
|
222
|
+
continue;
|
|
223
|
+
const full = path.join(dir, name);
|
|
224
|
+
let stat;
|
|
225
|
+
try {
|
|
226
|
+
stat = helper_1.fs.statSync(full);
|
|
227
|
+
}
|
|
228
|
+
catch (_b) {
|
|
229
|
+
continue;
|
|
230
|
+
}
|
|
231
|
+
if (stat.isDirectory())
|
|
232
|
+
walk(full, exts, acc, depth + 1);
|
|
233
|
+
else if (exts.some((e) => name.endsWith(e)))
|
|
234
|
+
acc.push(full);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* 扫描 sourceDir 并打印告警。仅在 sharedRuntime split 模式下由 index.mini 调用。
|
|
239
|
+
* 顶层 try/catch 兜底:扫描仅告警不阻断,任何异常都吞掉,不影响主构建。
|
|
240
|
+
* @returns 命中数
|
|
241
|
+
*/
|
|
242
|
+
function warnTopLevelImperativeApi(sourceDir) {
|
|
243
|
+
try {
|
|
244
|
+
if (!sourceDir || !helper_1.fs.existsSync(sourceDir))
|
|
245
|
+
return 0;
|
|
246
|
+
const files = [];
|
|
247
|
+
walk(sourceDir, ['.js', '.jsx', '.ts', '.tsx'], files);
|
|
248
|
+
const allHits = [];
|
|
249
|
+
for (const f of files)
|
|
250
|
+
allHits.push(...scanFile(f));
|
|
251
|
+
if (!allHits.length)
|
|
252
|
+
return 0;
|
|
253
|
+
const lines = allHits.map((h) => {
|
|
254
|
+
const rel = path.relative(sourceDir, h.file);
|
|
255
|
+
return ` ${rel}:${h.line} ${h.api} → ${h.code}`;
|
|
256
|
+
});
|
|
257
|
+
console.warn('\n[taro-shared][shared-runtime] 检测到【模块顶层】同步调用 Taro 命令式 API,' +
|
|
258
|
+
'运行时核加载完成前调用会告警/静默失效。请挪到组件函数体内 / useReady / useEffect / 事件回调,' +
|
|
259
|
+
'或改用异步版 API:\n' + lines.join('\n') + '\n');
|
|
260
|
+
return allHits.length;
|
|
261
|
+
}
|
|
262
|
+
catch (_a) {
|
|
263
|
+
return 0;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
exports.warnTopLevelImperativeApi = warnTopLevelImperativeApi;
|
|
267
|
+
//# sourceMappingURL=scan-imperative-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan-imperative-api.js","sourceRoot":"","sources":["../../src/shared-runtime/scan-imperative-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.shouldProcessCommonStyles = exports.isWeappSubPackageIndieEnabled = void 0;
|
|
4
|
+
function isWeappSubPackageIndieEnabled(platform, newBlended) {
|
|
5
|
+
return platform === 'weapp' && newBlended;
|
|
6
|
+
}
|
|
7
|
+
exports.isWeappSubPackageIndieEnabled = isWeappSubPackageIndieEnabled;
|
|
8
|
+
function shouldProcessCommonStyles({ hasCommonStyles, hasAppStyle, isWeappSubPackageIndieEnabled, }) {
|
|
9
|
+
return hasCommonStyles && (!isWeappSubPackageIndieEnabled || hasAppStyle);
|
|
10
|
+
}
|
|
11
|
+
exports.shouldProcessCommonStyles = shouldProcessCommonStyles;
|
|
12
|
+
//# sourceMappingURL=platform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/utils/platform.ts"],"names":[],"mappings":";;;AAMA,SAAgB,6BAA6B,CAAE,QAA4B,EAAE,UAAmB;IAC9F,OAAO,QAAQ,KAAK,OAAO,IAAI,UAAU,CAAA;AAC3C,CAAC;AAFD,sEAEC;AAED,SAAgB,yBAAyB,CAAE,EACzC,eAAe,EACf,WAAW,EACX,6BAA6B,GACI;IACjC,OAAO,eAAe,IAAI,CAAC,CAAC,6BAA6B,IAAI,WAAW,CAAC,CAAA;AAC3E,CAAC;AAND,8DAMC"}
|