@tarojs/webpack5-runner 4.1.12-beta.50 → 4.1.12-beta.52

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.
@@ -0,0 +1,444 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_path_1 = __importDefault(require("node:path"));
7
+ const helper_1 = require("@tarojs/helper");
8
+ const asyncSubPackage_1 = require("../utils/asyncSubPackage");
9
+ const PLUGIN_NAME = 'TaroAsyncSubPackagePlugin';
10
+ const ASYNC_SUBPACKAGE_ENTRY = 'index';
11
+ const COMMON_CACHE_GROUP_PATCHED = Symbol.for('taroAsyncSubPackageCommonCacheGroupPatched');
12
+ function getModuleResource(module) {
13
+ var _a;
14
+ return ((module === null || module === void 0 ? void 0 : module.resource) || ((_a = module === null || module === void 0 ? void 0 : module.nameForCondition) === null || _a === void 0 ? void 0 : _a.call(module)) || '').replace(/\?.*$/, '');
15
+ }
16
+ function isJavaScriptModule(module) {
17
+ const moduleType = (module === null || module === void 0 ? void 0 : module.type) || '';
18
+ const resource = getModuleResource(module);
19
+ if (moduleType.startsWith('css') || helper_1.REG_STYLE.test(resource))
20
+ return false;
21
+ return helper_1.REG_SCRIPTS.test(resource);
22
+ }
23
+ function getAsyncRootFromChunkName(chunkName, asyncRootMap) {
24
+ if (!chunkName)
25
+ return false;
26
+ const normalizedChunkName = (0, asyncSubPackage_1.normalizePathForAsyncSubPackage)(chunkName);
27
+ const sourceRoot = Array.from(asyncRootMap.keys()).find(root => {
28
+ const normalizedRoot = (0, asyncSubPackage_1.normalizePathForAsyncSubPackage)(root);
29
+ return normalizedChunkName === normalizedRoot || normalizedChunkName.startsWith(`${normalizedRoot}/`);
30
+ });
31
+ return sourceRoot ? asyncRootMap.get(sourceRoot) || false : false;
32
+ }
33
+ function getAsyncRootFromChunks(chunks, asyncRootMap) {
34
+ const asyncRoots = new Set();
35
+ for (const chunk of chunks) {
36
+ const asyncRoot = getAsyncRootFromChunkName(chunk === null || chunk === void 0 ? void 0 : chunk.name, asyncRootMap);
37
+ if (!asyncRoot)
38
+ return false;
39
+ asyncRoots.add(asyncRoot);
40
+ }
41
+ if (asyncRoots.size !== 1)
42
+ return false;
43
+ return Array.from(asyncRoots)[0];
44
+ }
45
+ function createAsyncSplitChunkName(asyncRoot, chunks) {
46
+ const chunkNames = chunks
47
+ .map(chunk => (chunk === null || chunk === void 0 ? void 0 : chunk.name) || String((chunk === null || chunk === void 0 ? void 0 : chunk.id) || 'common'))
48
+ .sort()
49
+ .join('~');
50
+ return (0, asyncSubPackage_1.createAsyncCommonChunkName)(asyncRoot, chunkNames || 'common');
51
+ }
52
+ function createMiniAppConfigContent(content, subPackages) {
53
+ const result = Object.assign(Object.assign({}, content), { subPackages });
54
+ // subPackageIndie/subpackages 是 Taro 编译期配置,不能透出到微信小程序 app.json。
55
+ delete result.subPackageIndie;
56
+ return result;
57
+ }
58
+ function createNormalizedRuntimeRootEntries(asyncRootEntries) {
59
+ return asyncRootEntries.map(({ sourceRoot, asyncRoot }) => {
60
+ const normalizedAsyncRoot = (0, asyncSubPackage_1.normalizePathForAsyncSubPackage)(asyncRoot);
61
+ return [
62
+ (0, asyncSubPackage_1.normalizePathForAsyncSubPackage)(sourceRoot),
63
+ normalizedAsyncRoot,
64
+ `${normalizedAsyncRoot}/${ASYNC_SUBPACKAGE_ENTRY}`
65
+ ];
66
+ });
67
+ }
68
+ function createChunkFilenameRuntimeSource(Template, getChunkScriptFilename) {
69
+ return [
70
+ `var asyncSubPackageChunkFilename = ${getChunkScriptFilename};`,
71
+ `${getChunkScriptFilename} = function(chunkId) {`,
72
+ Template.indent([
73
+ 'var filename = asyncSubPackageChunkFilename(chunkId);',
74
+ 'for (var i = 0; i < asyncSubPackageRootEntries.length; i++) {',
75
+ Template.indent([
76
+ 'var asyncRoot = asyncSubPackageRootEntries[i][1];',
77
+ 'if (filename === asyncRoot || filename.indexOf(asyncRoot + "/") === 0) return asyncSubPackageRootEntries[i][2];'
78
+ ]),
79
+ '}',
80
+ 'return filename;'
81
+ ]),
82
+ '};'
83
+ ];
84
+ }
85
+ function createRequestResolverRuntimeSource(Template) {
86
+ return [
87
+ 'var relative = function(from, to) {',
88
+ Template.indent([
89
+ 'var fromParts = from.split("/").filter(Boolean);',
90
+ 'var toParts = to.split("/").filter(Boolean);',
91
+ 'while (fromParts.length && toParts.length && fromParts[0] === toParts[0]) {',
92
+ Template.indent([
93
+ 'fromParts.shift();',
94
+ 'toParts.shift();'
95
+ ]),
96
+ '}',
97
+ 'var result = [];',
98
+ 'for (var i = 0; i < fromParts.length; i++) result.push("..");',
99
+ 'result = result.concat(toParts);',
100
+ 'return result.length ? result.join("/") : ".";'
101
+ ]),
102
+ '};',
103
+ 'var matchRouteAnchor = function(route, sourceRoot) {',
104
+ Template.indent([
105
+ 'var index = route.indexOf(sourceRoot);',
106
+ 'if (index < 0) return -1;',
107
+ 'if (index > 0 && route.charAt(index - 1) !== "/") return -1;',
108
+ 'var end = index + sourceRoot.length;',
109
+ 'if (route.length > end && route.charAt(end) !== "/") return -1;',
110
+ 'return index;'
111
+ ]),
112
+ '};',
113
+ 'var resolveAsyncSubPackageRequest = function(rawUrl) {',
114
+ Template.indent([
115
+ 'var pages = typeof getCurrentPages === "function" && getCurrentPages() || [];',
116
+ 'var currentPage = pages[pages.length - 1];',
117
+ 'var route = currentPage && currentPage.route;',
118
+ 'if (!route) return rawUrl;',
119
+ 'for (var i = 0; i < asyncSubPackageRootEntries.length; i++) {',
120
+ Template.indent([
121
+ 'var sourceRoot = asyncSubPackageRootEntries[i][0];',
122
+ 'var asyncRoot = asyncSubPackageRootEntries[i][1];',
123
+ 'var asyncEntry = asyncSubPackageRootEntries[i][2];',
124
+ 'if (rawUrl !== asyncEntry) continue;',
125
+ 'var routeMatchIndex = matchRouteAnchor(route, sourceRoot);',
126
+ 'if (routeMatchIndex < 0) continue;',
127
+ 'var hostAsyncEntry = route.slice(0, routeMatchIndex) + asyncRoot + "/' + ASYNC_SUBPACKAGE_ENTRY + '";',
128
+ 'var routeDirParts = route.split("/");',
129
+ 'routeDirParts.pop();',
130
+ 'var request = relative(routeDirParts.join("/"), hostAsyncEntry);',
131
+ 'return request.indexOf(".") === 0 ? request : "./" + request;'
132
+ ]),
133
+ '}',
134
+ 'return rawUrl;'
135
+ ]),
136
+ '};'
137
+ ];
138
+ }
139
+ function createRequireAsyncLoaderRuntimeSource(Template, loadScript) {
140
+ return [
141
+ 'var asyncSubPackageInProgress = {};',
142
+ `${loadScript} = function(url, done) {`,
143
+ Template.indent([
144
+ 'var rawUrl = (url || "").replace(/^\\/+/, "").replace(/\\.js$/, "");',
145
+ 'var request = resolveAsyncSubPackageRequest(rawUrl);',
146
+ 'if (asyncSubPackageInProgress[request]) { asyncSubPackageInProgress[request].push(done); return; }',
147
+ 'asyncSubPackageInProgress[request] = [done];',
148
+ 'var finish = function(event) {',
149
+ Template.indent([
150
+ 'var handlers = asyncSubPackageInProgress[request];',
151
+ 'delete asyncSubPackageInProgress[request];',
152
+ 'handlers && handlers.forEach(function(handler) { handler(event); });'
153
+ ]),
154
+ '};',
155
+ 'require.async(request).then(function() {',
156
+ Template.indent('finish({ type: "load", target: { src: request } });'),
157
+ '}, function(error) {',
158
+ Template.indent('finish({ type: "error", target: { src: request }, error: error });'),
159
+ '});'
160
+ ]),
161
+ '};'
162
+ ];
163
+ }
164
+ function createMiniCssRuntimeSource(Template, ensureChunkHandlers) {
165
+ return [
166
+ `${ensureChunkHandlers}.miniCss = function(chunkId, promises) {`,
167
+ Template.indent([
168
+ '// asyncSubPackage 的样式已在构建产物阶段合并回 sourceRoot 页面样式。',
169
+ '// 小程序环境没有 document,不能执行 mini-css-extract-plugin 的浏览器 CSS loader。'
170
+ ]),
171
+ '};'
172
+ ];
173
+ }
174
+ function createMiniAsyncSubPackageRuntimeSource(Template, runtimeGlobals, asyncRootEntries) {
175
+ const { loadScript, ensureChunkHandlers, getChunkScriptFilename, publicPath } = runtimeGlobals;
176
+ const asyncRootRuntimeEntries = createNormalizedRuntimeRootEntries(asyncRootEntries);
177
+ return Template.asString([
178
+ `${publicPath} = "";`,
179
+ `var asyncSubPackageRootEntries = ${JSON.stringify(asyncRootRuntimeEntries)};`,
180
+ ...createChunkFilenameRuntimeSource(Template, getChunkScriptFilename),
181
+ ...createRequestResolverRuntimeSource(Template),
182
+ ...createRequireAsyncLoaderRuntimeSource(Template, loadScript),
183
+ ...createMiniCssRuntimeSource(Template, ensureChunkHandlers)
184
+ ]);
185
+ }
186
+ function createMiniAsyncSubPackageRuntimeModuleClass(webpack, Template, runtimeGlobals) {
187
+ const RuntimeModule = webpack.RuntimeModule;
188
+ const stageAttach = RuntimeModule.STAGE_ATTACH || 10;
189
+ return class MiniAsyncSubPackageRuntimeModule extends RuntimeModule {
190
+ constructor(asyncRootEntries) {
191
+ // 在 webpack 原生 runtime module 之后执行,稳定覆盖浏览器 script/css loader。
192
+ super('mini async subpackage chunk loader', stageAttach);
193
+ this.asyncRootEntries = asyncRootEntries;
194
+ }
195
+ generate() {
196
+ return createMiniAsyncSubPackageRuntimeSource(Template, runtimeGlobals, this.asyncRootEntries);
197
+ }
198
+ };
199
+ }
200
+ /**
201
+ * 异步分包插件:集中处理 asyncSubPackage 的 chunk 归属、运行时加载补丁、异步分包入口和 app.json 注册。
202
+ *
203
+ * 当前方案保留 webpack 原生 import(),让 webpack 继续生成异步 chunk;随后在产物阶段把这些 chunk
204
+ * 移到配置的 asyncRoot 下,并生成微信可识别的 asyncRoot/index 占位页面作为分包加载入口。
205
+ */
206
+ class AsyncSubPackagePlugin {
207
+ constructor(miniPlugin, asyncRootMap) {
208
+ this.asyncRootMap = new Map();
209
+ this.asyncRuntimeRoots = [];
210
+ this.appliedCompilers = new WeakSet();
211
+ this.miniHooksApplied = false;
212
+ this.asyncModuleCache = new WeakMap();
213
+ this.miniPlugin = miniPlugin;
214
+ if (asyncRootMap) {
215
+ this.updateAsyncRootMap(asyncRootMap);
216
+ }
217
+ }
218
+ updateAsyncRootMap(asyncRootMap) {
219
+ this.asyncRootMap = new Map(asyncRootMap);
220
+ this.asyncRuntimeRoots = Array.from(asyncRootMap.entries()).map(([sourceRoot, asyncRoot]) => ({ sourceRoot, asyncRoot }));
221
+ global.__taroAsyncSubPackageUseWebpackImport = true;
222
+ }
223
+ updateAsyncRuntimeRoots(asyncRuntimeRoots) {
224
+ this.asyncRuntimeRoots = asyncRuntimeRoots.map(item => (Object.assign({}, item)));
225
+ }
226
+ apply(compiler) {
227
+ if (compiler && !this.appliedCompilers.has(compiler)) {
228
+ this.appliedCompilers.add(compiler);
229
+ compiler.hooks.compilation.tap(PLUGIN_NAME, () => {
230
+ this.asyncModuleCache = new WeakMap();
231
+ });
232
+ this.setupAsyncSplitChunks(compiler);
233
+ this.setupAsyncChunkOptimization(compiler);
234
+ this.setupAsyncChunkRuntime(compiler);
235
+ this.setupAsyncChunkAssetExtraction(compiler);
236
+ }
237
+ if (!this.miniHooksApplied) {
238
+ this.miniHooksApplied = true;
239
+ this.setupSubPackageRegistration();
240
+ }
241
+ }
242
+ // ==================== Async SplitChunks ====================
243
+ setupAsyncSplitChunks(compiler) {
244
+ var _a;
245
+ const splitChunks = (_a = compiler.options.optimization) === null || _a === void 0 ? void 0 : _a.splitChunks;
246
+ if (!splitChunks)
247
+ return;
248
+ const cacheGroups = splitChunks.cacheGroups || {};
249
+ const commonCacheGroup = cacheGroups.common;
250
+ if (commonCacheGroup && commonCacheGroup !== false && !commonCacheGroup[COMMON_CACHE_GROUP_PATCHED]) {
251
+ const originalCommonTest = commonCacheGroup.test;
252
+ commonCacheGroup.test = (module, context) => {
253
+ // asyncSubPackage 自己负责归属到 asyncRoot 的 JS 模块,避免被默认 common 抽到主包 common.js。
254
+ if (this.isAsyncSubPackageModule(module, context))
255
+ return false;
256
+ return typeof originalCommonTest === 'function' ? originalCommonTest(module, context) : originalCommonTest !== false;
257
+ };
258
+ // 同一插件实例多次 apply、或 webpack-chain 多次构建 options 时,避免对 test 反复套娃。
259
+ Object.defineProperty(commonCacheGroup, COMMON_CACHE_GROUP_PATCHED, { value: true, enumerable: false });
260
+ }
261
+ cacheGroups.asyncSubPackage = {
262
+ chunks: 'async',
263
+ minChunks: 2,
264
+ minSize: 0,
265
+ priority: 20,
266
+ enforce: true,
267
+ name: (_module, chunks) => {
268
+ const asyncRoot = getAsyncRootFromChunks(chunks, this.asyncRootMap);
269
+ if (!asyncRoot)
270
+ return false;
271
+ return createAsyncSplitChunkName(asyncRoot, chunks);
272
+ },
273
+ test: (module, context) => this.isAsyncSubPackageModule(module, context),
274
+ };
275
+ splitChunks.cacheGroups = cacheGroups;
276
+ }
277
+ getCachedAsyncRootForModule(module, context) {
278
+ if (!module)
279
+ return undefined;
280
+ if (this.asyncModuleCache.has(module))
281
+ return this.asyncModuleCache.get(module);
282
+ // getAsyncRootForModule 内部会主动写入 cache(包括递归路径上遇到的所有 module)。
283
+ return (0, asyncSubPackage_1.getAsyncRootForModule)(module, this.miniPlugin.options.sourceDir, this.asyncRootMap, context === null || context === void 0 ? void 0 : context.moduleGraph, undefined, this.asyncModuleCache);
284
+ }
285
+ isAsyncSubPackageModule(module, context) {
286
+ if (this.asyncRootMap.size === 0)
287
+ return false;
288
+ if (!isJavaScriptModule(module))
289
+ return false;
290
+ const asyncRoot = this.getCachedAsyncRootForModule(module, context);
291
+ return Boolean(asyncRoot);
292
+ }
293
+ // ==================== Async Chunk Optimization ====================
294
+ setupAsyncChunkOptimization(compiler) {
295
+ compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
296
+ compilation.hooks.optimizeChunks.tap(PLUGIN_NAME, chunks => {
297
+ var _a, _b;
298
+ if (this.asyncRootMap.size === 0)
299
+ return;
300
+ for (const chunk of chunks) {
301
+ // 入口 chunk 名要在 app.json/页面注册中保持稳定,不能被改成 asyncRoot 路径。
302
+ if (((_a = chunk.hasRuntime) === null || _a === void 0 ? void 0 : _a.call(chunk)) || ((_b = chunk.canBeInitial) === null || _b === void 0 ? void 0 : _b.call(chunk)))
303
+ continue;
304
+ const modules = Array.from(compilation.chunkGraph.getChunkModulesIterable(chunk));
305
+ const jsModules = modules.filter(module => isJavaScriptModule(module));
306
+ if (jsModules.length === 0)
307
+ continue;
308
+ const asyncRoot = (0, asyncSubPackage_1.getSingleAsyncRootForModules)(jsModules, this.miniPlugin.options.sourceDir, this.asyncRootMap, compilation.moduleGraph);
309
+ if (!asyncRoot)
310
+ continue;
311
+ const fallbackName = jsModules
312
+ .map(module => node_path_1.default.posix.basename(getModuleResource(module)).replace(/\?.*$/, ''))
313
+ .filter(Boolean)
314
+ .sort()
315
+ .join('~') || 'common';
316
+ chunk.name = (0, asyncSubPackage_1.createAsyncCommonChunkName)(asyncRoot, chunk.name || String(chunk.id || chunk.debugId || fallbackName));
317
+ }
318
+ });
319
+ });
320
+ }
321
+ // ==================== Async Chunk Runtime ====================
322
+ setupAsyncChunkRuntime(compiler) {
323
+ const webpack = compiler.webpack;
324
+ const { RuntimeGlobals, RuntimeModule, Template } = webpack;
325
+ const loadScript = RuntimeGlobals === null || RuntimeGlobals === void 0 ? void 0 : RuntimeGlobals.loadScript;
326
+ const ensureChunkHandlers = RuntimeGlobals === null || RuntimeGlobals === void 0 ? void 0 : RuntimeGlobals.ensureChunkHandlers;
327
+ const getChunkScriptFilename = RuntimeGlobals === null || RuntimeGlobals === void 0 ? void 0 : RuntimeGlobals.getChunkScriptFilename;
328
+ const publicPath = RuntimeGlobals === null || RuntimeGlobals === void 0 ? void 0 : RuntimeGlobals.publicPath;
329
+ if (!loadScript || !ensureChunkHandlers || !getChunkScriptFilename || !publicPath || !RuntimeModule)
330
+ return;
331
+ const MiniAsyncSubPackageRuntimeModule = createMiniAsyncSubPackageRuntimeModuleClass(webpack, Template, { loadScript, ensureChunkHandlers, getChunkScriptFilename, publicPath });
332
+ compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
333
+ const runtimeAppliedChunks = new WeakSet();
334
+ const addMiniAsyncRuntimeModule = (chunk) => {
335
+ if (this.asyncRootMap.size === 0 || runtimeAppliedChunks.has(chunk))
336
+ return;
337
+ runtimeAppliedChunks.add(chunk);
338
+ compilation.addRuntimeModule(chunk, new MiniAsyncSubPackageRuntimeModule(this.asyncRuntimeRoots));
339
+ return true;
340
+ };
341
+ // 不依赖 runtime.js 文本格式,也不只依赖某一个 runtime requirement:
342
+ // dev/prod 下 webpack 可能通过不同 requirement 触发异步 chunk runtime。
343
+ compilation.hooks.runtimeRequirementInTree.for(loadScript).tap(PLUGIN_NAME, addMiniAsyncRuntimeModule);
344
+ compilation.hooks.runtimeRequirementInTree.for(ensureChunkHandlers).tap(PLUGIN_NAME, addMiniAsyncRuntimeModule);
345
+ compilation.hooks.runtimeRequirementInTree.for(getChunkScriptFilename).tap(PLUGIN_NAME, addMiniAsyncRuntimeModule);
346
+ });
347
+ }
348
+ // ==================== Async Chunk Asset Extraction ====================
349
+ setupAsyncChunkAssetExtraction(compiler) {
350
+ compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
351
+ var _a;
352
+ // PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER 在 webpack 5 中为 300;fallback 仅保留极旧版本兼容。
353
+ const stage = (_a = compilation.constructor.PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER) !== null && _a !== void 0 ? _a : 300;
354
+ compilation.hooks.processAssets.tap({ name: PLUGIN_NAME, stage }, () => {
355
+ if (this.asyncRootMap.size === 0)
356
+ return;
357
+ const { RawSource } = compilation.compiler.webpack.sources;
358
+ this.moveAsyncRootStylesToSourceRoots(compilation, RawSource);
359
+ this.createAsyncRootEntries(compilation, RawSource);
360
+ });
361
+ });
362
+ }
363
+ createAsyncRootEntries(compilation, RawSource) {
364
+ const templateExt = this.miniPlugin.options.fileType.templ || '.wxml';
365
+ const configExt = this.miniPlugin.options.fileType.config || '.json';
366
+ // 多个 sourceRoot 可能指向同一个 asyncRoot;同一 asyncRoot 的 index 占位只需要生成一次。
367
+ const uniqueAsyncRoots = new Set(this.asyncRootMap.values());
368
+ for (const asyncRoot of uniqueAsyncRoots) {
369
+ const jsAssets = (0, asyncSubPackage_1.getAsyncRootAssetNames)(compilation.assets, asyncRoot)
370
+ .filter(assetName => assetName !== `${asyncRoot}/${ASYNC_SUBPACKAGE_ENTRY}.js`)
371
+ .sort();
372
+ if (jsAssets.length === 0)
373
+ continue;
374
+ // 微信 require.async 只能稳定加载 app.json 中注册过的分包页面入口。
375
+ // 因此 asyncRoot 只注册 index 页面,index.js 再同步 require 真实 webpack async chunk,
376
+ // 让 webpack JSONP runtime 完成 chunk 注册。
377
+ const requires = jsAssets
378
+ .map(assetName => `require('./${node_path_1.default.posix.basename(assetName)}')`)
379
+ .join('\n');
380
+ compilation.assets[`${asyncRoot}/${ASYNC_SUBPACKAGE_ENTRY}.js`] = new RawSource(requires);
381
+ compilation.assets[`${asyncRoot}/${ASYNC_SUBPACKAGE_ENTRY}${configExt}`] = new RawSource('{}');
382
+ compilation.assets[`${asyncRoot}/${ASYNC_SUBPACKAGE_ENTRY}${templateExt}`] = new RawSource('<view />');
383
+ }
384
+ }
385
+ moveAsyncRootStylesToSourceRoots(compilation, RawSource) {
386
+ var _a, _b;
387
+ const styleExt = this.miniPlugin.options.fileType.style || '.wxss';
388
+ const styleAssetReg = new RegExp(`\\${styleExt}$`);
389
+ const asyncRootEntries = Array.from(this.asyncRootMap.entries());
390
+ for (const [sourceRoot, asyncRoot] of asyncRootEntries) {
391
+ const asyncStyleAssets = Object.keys(compilation.assets)
392
+ .filter(assetName => assetName.startsWith(`${asyncRoot}/`) && styleAssetReg.test(assetName));
393
+ if (asyncStyleAssets.length === 0)
394
+ continue;
395
+ // asyncRoot 下只保留 JS 与 index 占位页面;动态组件样式仍在父包页面上下文生效,
396
+ // 因此把 async chunk 产生的样式并回对应 sourceRoot/index.wxss。
397
+ const targetStyleAsset = `${sourceRoot}/index${styleExt}`;
398
+ const origin = ((_b = (_a = compilation.assets[targetStyleAsset]) === null || _a === void 0 ? void 0 : _a.source) === null || _b === void 0 ? void 0 : _b.call(_a).toString()) || '';
399
+ const asyncStyles = asyncStyleAssets
400
+ .map(assetName => { var _a, _b; return ((_b = (_a = compilation.assets[assetName]) === null || _a === void 0 ? void 0 : _a.source) === null || _b === void 0 ? void 0 : _b.call(_a).toString()) || ''; })
401
+ .filter(Boolean)
402
+ .join('\n');
403
+ compilation.assets[targetStyleAsset] = new RawSource([origin, asyncStyles].filter(Boolean).join('\n'));
404
+ for (const assetName of asyncStyleAssets) {
405
+ delete compilation.assets[assetName];
406
+ }
407
+ }
408
+ }
409
+ // ==================== app.json Registration ====================
410
+ setupSubPackageRegistration() {
411
+ this.miniPlugin.hooks.afterGenerateFiles.tap(PLUGIN_NAME, (compilation) => {
412
+ var _a, _b, _c;
413
+ if (this.asyncRootMap.size === 0)
414
+ return;
415
+ const { RawSource } = (((_b = (_a = compilation.compiler) === null || _a === void 0 ? void 0 : _a.webpack) === null || _b === void 0 ? void 0 : _b.sources) || require('webpack').sources);
416
+ const appConfig = this.miniPlugin.appConfig;
417
+ const exist = appConfig.subPackages || appConfig.subpackages || [];
418
+ const news = [];
419
+ // 多个 sourceRoot 可以指向同一个 asyncRoot,app.json 中只能注册一次。
420
+ // pages 固定为 index,避免把每个 webpack chunk 当成小程序页面。
421
+ const asyncRoots = new Set(this.asyncRootMap.values());
422
+ for (const asyncRoot of asyncRoots) {
423
+ news.push({ root: asyncRoot, pages: [ASYNC_SUBPACKAGE_ENTRY], independent: false });
424
+ }
425
+ const mergedMap = new Map();
426
+ for (const item of [...exist, ...news]) {
427
+ if (!(item === null || item === void 0 ? void 0 : item.root) || mergedMap.has(item.root))
428
+ continue;
429
+ mergedMap.set(item.root, item);
430
+ }
431
+ const merged = Array.from(mergedMap.values());
432
+ appConfig.subPackages = merged;
433
+ const appCfgPath = this.miniPlugin.getConfigFilePath(this.miniPlugin.appEntry);
434
+ const appCfgName = node_path_1.default.basename(appCfgPath).replace(node_path_1.default.extname(appCfgPath), '');
435
+ const fc = (_c = this.miniPlugin.filesConfig) === null || _c === void 0 ? void 0 : _c[appCfgName];
436
+ if (fc) {
437
+ fc.content = createMiniAppConfigContent(fc.content, merged);
438
+ compilation.assets[this.miniPlugin.getConfigPath(appCfgName)] = new RawSource(JSON.stringify(fc.content, null, 2));
439
+ }
440
+ });
441
+ }
442
+ }
443
+ exports.default = AsyncSubPackagePlugin;
444
+ //# sourceMappingURL=AsyncSubPackagePlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AsyncSubPackagePlugin.js","sourceRoot":"","sources":["../../src/plugins/AsyncSubPackagePlugin.ts"],"names":[],"mappings":"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"}
@@ -48,18 +48,22 @@ class BuildNativePlugin extends MiniPlugin_1.default {
48
48
  if (!this.isWatch) {
49
49
  (0, helper_1.printLog)("compile" /* processTypeEnum.COMPILE */, '发现入口', this.getShowPath(this.appEntry));
50
50
  }
51
- const { frameworkExts } = this.options;
51
+ const { frameworkExts, newBlended } = this.options;
52
52
  this.prerenderPages = new Set();
53
- this.pages = new Set([
54
- ...appPages.map(item => {
55
- const pagePath = (0, helper_1.resolveMainFilePath)(node_path_1.default.join(this.options.sourceDir, item), frameworkExts);
56
- return {
57
- name: item,
58
- path: pagePath,
59
- isNative: false
60
- };
61
- })
62
- ]);
53
+ const componentPages = appPages.map(item => {
54
+ const pagePath = (0, helper_1.resolveMainFilePath)(node_path_1.default.join(this.options.sourceDir, item), frameworkExts);
55
+ return {
56
+ name: item,
57
+ path: pagePath,
58
+ isNative: false
59
+ };
60
+ });
61
+ this.pages = new Set(componentPages);
62
+ if (newBlended) {
63
+ componentPages.forEach(component => {
64
+ this.nativeComponents.set(component.name, component);
65
+ });
66
+ }
63
67
  }
64
68
  // entry 删除 app.js
65
69
  addEntries() {
@@ -1 +1 @@
1
- {"version":3,"file":"BuildNativePlugin.js","sourceRoot":"","sources":["../../src/plugins/BuildNativePlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BuildNativePlugin.js","sourceRoot":"","sources":["../../src/plugins/BuildNativePlugin.ts"],"names":[],"mappings":"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"}
@@ -46,6 +46,7 @@ const prerender_1 = require("../prerender/prerender");
46
46
  const component_1 = require("../utils/component");
47
47
  const forceCustomWrapper_1 = require("../utils/forceCustomWrapper");
48
48
  const webpack_1 = require("../utils/webpack");
49
+ const AsyncSubPackagePlugin_1 = __importDefault(require("./AsyncSubPackagePlugin"));
49
50
  const SubPackageIndiePlugin_1 = __importStar(require("./SubPackageIndiePlugin"));
50
51
  const TaroLoadChunksPlugin_1 = __importDefault(require("./TaroLoadChunksPlugin"));
51
52
  const TaroNormalModulesPlugin_1 = __importDefault(require("./TaroNormalModulesPlugin"));
@@ -75,6 +76,7 @@ class TaroMiniPlugin {
75
76
  this.dependencies = new Map();
76
77
  this.pageLoaderName = '@tarojs/taro-loader/lib/page';
77
78
  this.independentPackages = new Map();
79
+ this.asyncSubPackagePlugin = null;
78
80
  this.subPackageIndiePlugin = null;
79
81
  this.forceCustomWrapperDefineDefinitions = null;
80
82
  const { combination } = options;
@@ -156,6 +158,7 @@ class TaroMiniPlugin {
156
158
  compiler.hooks.run.tapAsync(PLUGIN_NAME, this.tryAsync((compiler) => __awaiter(this, void 0, void 0, function* () {
157
159
  yield this.run(compiler);
158
160
  this.applyForceCustomWrapperDefine(compiler);
161
+ this.applyAsyncSubPackagePlugin(compiler);
159
162
  new TaroLoadChunksPlugin_1.default({
160
163
  commonChunks: commonChunks,
161
164
  isBuildPlugin,
@@ -172,6 +175,7 @@ class TaroMiniPlugin {
172
175
  }
173
176
  yield this.run(compiler);
174
177
  this.applyForceCustomWrapperDefine(compiler);
178
+ this.applyAsyncSubPackagePlugin(compiler);
175
179
  if (!this.loadChunksPlugin) {
176
180
  this.loadChunksPlugin = new TaroLoadChunksPlugin_1.default({
177
181
  commonChunks: commonChunks,
@@ -371,6 +375,23 @@ class TaroMiniPlugin {
371
375
  });
372
376
  });
373
377
  }
378
+ /**
379
+ * 初始化异步分包插件。
380
+ * MiniPlugin 仅作为桥接,具体的 babel 注入、chunk 处理和 app.json 注册由 AsyncSubPackagePlugin 承担。
381
+ */
382
+ applyAsyncSubPackagePlugin(compiler) {
383
+ if (!this.subPackageIndiePlugin)
384
+ return;
385
+ const asyncRootMap = this.subPackageIndiePlugin.getAsyncSubPackageRootMap();
386
+ if (asyncRootMap.size === 0)
387
+ return;
388
+ if (!this.asyncSubPackagePlugin) {
389
+ this.asyncSubPackagePlugin = new AsyncSubPackagePlugin_1.default(this);
390
+ }
391
+ this.asyncSubPackagePlugin.updateAsyncRootMap(asyncRootMap);
392
+ this.asyncSubPackagePlugin.updateAsyncRuntimeRoots(this.subPackageIndiePlugin.getAsyncSubPackageRuntimeRoots());
393
+ this.asyncSubPackagePlugin.apply(compiler);
394
+ }
374
395
  /**
375
396
  * 根据 webpack entry 配置获取入口文件路径
376
397
  * @returns app 入口文件路径