@taro-hmr-compile/plugin-webpack 0.0.1-alpha.6 → 0.0.1-alpha.8

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.
@@ -1,6 +1,6 @@
1
1
  import type { LoaderDefinitionFunction } from 'webpack';
2
2
  export declare const injectAppHmrRuntime: (source: string, debugNamespaces?: string) => string;
3
- export declare const transformPageConfig: (source: string, sourceFileName?: string) => string | undefined;
3
+ export declare const transformPageConfig: (source: string, sourceFileName?: string) => string;
4
4
  interface LoaderOptions {
5
5
  miniType: 'PAGE' | 'ENTRY';
6
6
  debugNamespaces?: string;
@@ -45,8 +45,9 @@ const t = __importStar(require("@babel/types"));
45
45
  const webpack_1 = __importDefault(require("webpack"));
46
46
  const CREATE_PAGE_CONFIG = 'createPageConfig';
47
47
  const WITH_HMR_PAGE_CONFIG = 'withHmrPageConfig';
48
- const CORE_RUNTIME_REQUEST = require.resolve('@taro-hmr-compile/core/runtime');
48
+ const TARO_RUNTIME_REQUEST = '@tarojs/runtime';
49
49
  const LOG_REQUEST = require.resolve('../log');
50
+ const CORE_RUNTIME_REQUEST = require.resolve('@taro-hmr-compile/core/runtime');
50
51
  const injectAppHmrRuntime = (source, debugNamespaces = '') => {
51
52
  const ast = parser.parse(source, { sourceType: 'module' });
52
53
  const buildHmrCode = template_1.default.statements(`
@@ -74,7 +75,7 @@ const injectAppHmrRuntime = (source, debugNamespaces = '') => {
74
75
  (0, traverse_1.default)(ast, {
75
76
  Program(path) {
76
77
  const body = path.get('body');
77
- const hasInjected = body.some(item => item.isImportDeclaration() && item.node.source.value === CORE_RUNTIME_REQUEST);
78
+ const hasInjected = body.some(item => item.isImportDeclaration() && t.isStringLiteral(item.node.source, { value: CORE_RUNTIME_REQUEST }));
78
79
  if (hasInjected)
79
80
  return;
80
81
  const nodes = buildHmrCode();
@@ -90,54 +91,61 @@ const injectAppHmrRuntime = (source, debugNamespaces = '') => {
90
91
  exports.injectAppHmrRuntime = injectAppHmrRuntime;
91
92
  const transformPageConfig = (source, sourceFileName) => {
92
93
  const ast = parser.parse(source, { sourceType: 'module', plugins: ['typescript', 'jsx'] });
93
- let transformed = false;
94
+ const hasImportWithHmrPageConfig = (programPath) => {
95
+ return programPath.node.body.some(node => {
96
+ if (!t.isImportDeclaration(node))
97
+ return false;
98
+ if (!t.isStringLiteral(node.source, { value: CORE_RUNTIME_REQUEST }))
99
+ return false;
100
+ return node.specifiers.some(specifier => {
101
+ return t.isImportSpecifier(specifier) && t.isIdentifier(specifier.imported, { name: WITH_HMR_PAGE_CONFIG });
102
+ });
103
+ });
104
+ };
94
105
  (0, traverse_1.default)(ast, {
95
106
  Program(programPath) {
107
+ // 判断是否存在 createPageConfig 引用
96
108
  const createPageConfigBinding = programPath.scope.getBinding(CREATE_PAGE_CONFIG);
97
109
  if (!createPageConfigBinding || !createPageConfigBinding.path.isImportSpecifier())
98
110
  return;
99
- const importDeclaration = createPageConfigBinding.path.parentPath;
100
- if (!importDeclaration.isImportDeclaration() || importDeclaration.node.source.value !== '@tarojs/runtime')
111
+ // 判断 createPageConfig 引用是否来自 @tarojs/runtime
112
+ const { parentPath: createPageConfigImportDeclaration } = createPageConfigBinding.path;
113
+ if (!t.isImportDeclaration(createPageConfigImportDeclaration.node))
114
+ return;
115
+ if (!t.isStringLiteral(createPageConfigImportDeclaration.node.source, { value: TARO_RUNTIME_REQUEST }))
101
116
  return;
102
- const wrapperIdentifier = programPath.scope.hasBinding(WITH_HMR_PAGE_CONFIG)
103
- ? programPath.scope.generateUidIdentifier(WITH_HMR_PAGE_CONFIG)
104
- : t.identifier(WITH_HMR_PAGE_CONFIG);
117
+ // 判断是否已经注入了 withHmrPageConfig
118
+ if (hasImportWithHmrPageConfig(programPath))
119
+ return;
120
+ // 判断是否存在 withHmrPageConfig 引用
121
+ const hasWithHmrPageConfigBinding = programPath.scope.hasBinding(WITH_HMR_PAGE_CONFIG);
122
+ // 生成 withHmrPageConfig 的别名
123
+ const wrapperIdentifier = hasWithHmrPageConfigBinding ? programPath.scope.generateUidIdentifier(WITH_HMR_PAGE_CONFIG) : t.identifier(WITH_HMR_PAGE_CONFIG);
124
+ // 生成 runtime import
125
+ const runtimeImport = (() => {
126
+ if (!hasWithHmrPageConfigBinding)
127
+ return template_1.default.statement(`import { ${WITH_HMR_PAGE_CONFIG} } from ${JSON.stringify(CORE_RUNTIME_REQUEST)};`)();
128
+ return template_1.default.statement(`import { ${WITH_HMR_PAGE_CONFIG} as %%WRAPPER%% } from ${JSON.stringify(CORE_RUNTIME_REQUEST)};`)({ WRAPPER: wrapperIdentifier });
129
+ })();
105
130
  programPath.traverse({
106
- VariableDeclarator(variablePath) {
107
- if (!t.isIdentifier(variablePath.node.id, { name: 'taroOption' }))
108
- return;
109
- const init = variablePath.node.init;
110
- if (!t.isCallExpression(init) || !t.isIdentifier(init.callee, { name: CREATE_PAGE_CONFIG }))
111
- return;
112
- if (init.arguments.length < 2 || t.isSpreadElement(init.arguments[1]))
131
+ CallExpression(CallExpressionPath) {
132
+ const { node: CallExpressionNode } = CallExpressionPath;
133
+ if (!t.isIdentifier(CallExpressionNode.callee, { name: CREATE_PAGE_CONFIG }))
113
134
  return;
114
- const templateCode = '%%WRAPPER%%(%%PAGE_CONFIG%%, %%PAGE_NAME%%)';
115
- variablePath.node.init = template_1.default.expression(templateCode)({ WRAPPER: wrapperIdentifier, PAGE_CONFIG: init, PAGE_NAME: init.arguments[1] });
116
- transformed = true;
117
- variablePath.stop();
118
- },
119
- });
120
- if (!transformed)
121
- return;
122
- const existingImport = programPath.get('body').find(item => {
123
- return item.isImportDeclaration() && item.node.source.value === CORE_RUNTIME_REQUEST;
135
+ const [_, pageName] = CallExpressionNode.arguments;
136
+ const wrappedPageConfig = template_1.default.expression(`%%WRAPPER%%(%%PAGE_CONFIG%%, %%PAGE_NAME%%)`)({
137
+ WRAPPER: wrapperIdentifier,
138
+ PAGE_CONFIG: CallExpressionNode,
139
+ PAGE_NAME: pageName,
140
+ });
141
+ if (!hasImportWithHmrPageConfig(programPath))
142
+ programPath.unshiftContainer('body', runtimeImport);
143
+ CallExpressionPath.replaceWith(wrappedPageConfig);
144
+ CallExpressionPath.skip();
145
+ }
124
146
  });
125
- const runtimeImport = wrapperIdentifier.name === WITH_HMR_PAGE_CONFIG
126
- ? template_1.default.statement(`import { withHmrPageConfig } from ${JSON.stringify(CORE_RUNTIME_REQUEST)}`)()
127
- : template_1.default.statement(`import { withHmrPageConfig as %%WRAPPER%% } from ${JSON.stringify(CORE_RUNTIME_REQUEST)}`)({ WRAPPER: wrapperIdentifier });
128
- if (!t.isImportDeclaration(runtimeImport))
129
- throw new TypeError('Expected runtime import template to create an import declaration');
130
- const hasNamespaceSpecifier = (existingImport === null || existingImport === void 0 ? void 0 : existingImport.isImportDeclaration()) && existingImport.node.specifiers.some(specifier => t.isImportNamespaceSpecifier(specifier));
131
- if ((existingImport === null || existingImport === void 0 ? void 0 : existingImport.isImportDeclaration()) && !hasNamespaceSpecifier) {
132
- existingImport.pushContainer('specifiers', runtimeImport.specifiers[0]);
133
- }
134
- else {
135
- programPath.unshiftContainer('body', runtimeImport);
136
- }
137
147
  },
138
148
  });
139
- if (!transformed)
140
- return;
141
149
  return (0, generator_1.default)(ast, { sourceMaps: true, sourceFileName }, source).code;
142
150
  };
143
151
  exports.transformPageConfig = transformPageConfig;
@@ -148,7 +156,7 @@ const hmrCompilerLoader = function (source) {
148
156
  return (0, exports.injectAppHmrRuntime)(source, debugNamespaces);
149
157
  if (miniType === 'PAGE')
150
158
  return (_a = (0, exports.transformPageConfig)(source, this.resourcePath)) !== null && _a !== void 0 ? _a : source;
151
- throw new Error(`unsupported HMR entry miniType: ${miniType}`);
159
+ return source;
152
160
  };
153
161
  exports.default = hmrCompilerLoader;
154
162
  //# sourceMappingURL=hmr-compiler-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hmr-compiler-loader.js","sourceRoot":"","sources":["../../src/compile/hmr-compiler-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hmr-compiler-loader.js","sourceRoot":"","sources":["../../src/compile/hmr-compiler-loader.ts"],"names":[],"mappings":"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"}
@@ -11,11 +11,13 @@ export interface HmrCompilerPluginOptions {
11
11
  styleFilename?: StyleFilename;
12
12
  debugNamespaces?: string;
13
13
  }
14
+ type CompileRequested = SyncHook<[page: string]>;
15
+ type ChunkModulesRendered = SyncHook<[source: string, isPageChunk: boolean]>;
14
16
  export interface HmrCompilerHooks {
15
- compileRequested: SyncHook<[page: string]>;
17
+ compileRequested: CompileRequested;
16
18
  }
17
19
  export interface HmrCompilationHooks {
18
- pageChunkModules: SyncHook<[source: string]>;
20
+ chunkModulesRendered: ChunkModulesRendered;
19
21
  }
20
22
  export declare const applyPatchBeforeStartup: (source: Source, request: string) => ConcatSource;
21
23
  export declare class HmrCompilerPlugin {
@@ -29,20 +29,18 @@ class HmrCompilerPlugin {
29
29
  this.options = options;
30
30
  }
31
31
  static getCompilerHooks(compiler) {
32
- let hooks = HmrCompilerPlugin.compilerHooksMap.get(compiler);
33
- if (!hooks) {
34
- hooks = { compileRequested: new tapable_1.SyncHook(['page']) };
35
- HmrCompilerPlugin.compilerHooksMap.set(compiler, hooks);
32
+ if (!HmrCompilerPlugin.compilerHooksMap.get(compiler)) {
33
+ const compileRequested = new tapable_1.SyncHook(['page']);
34
+ HmrCompilerPlugin.compilerHooksMap.set(compiler, { compileRequested });
36
35
  }
37
- return hooks;
36
+ return HmrCompilerPlugin.compilerHooksMap.get(compiler);
38
37
  }
39
38
  static getCompilationHooks(compilation) {
40
- let hooks = HmrCompilerPlugin.compilationHooksMap.get(compilation);
41
- if (!hooks) {
42
- hooks = { pageChunkModules: new tapable_1.SyncHook(['source']) };
43
- HmrCompilerPlugin.compilationHooksMap.set(compilation, hooks);
39
+ if (!HmrCompilerPlugin.compilationHooksMap.get(compilation)) {
40
+ const chunkModulesRendered = new tapable_1.SyncHook(['source', 'isBootstrapChunk']);
41
+ HmrCompilerPlugin.compilationHooksMap.set(compilation, { chunkModulesRendered });
44
42
  }
45
- return hooks;
43
+ return HmrCompilerPlugin.compilationHooksMap.get(compilation);
46
44
  }
47
45
  apply(compiler) {
48
46
  this.compiler = compiler;
@@ -83,10 +81,9 @@ class HmrCompilerPlugin {
83
81
  // 只修改 Page Chunk 的 JS transport。Webpack 的 ModuleGraph / ChunkGraph 保持不变,
84
82
  // 因而 hash、HMR diff 和 hot-update 仍以完整模块图为准。
85
83
  javascriptHooks.renderChunk.tap({ name: PLUGIN_NAME, stage: -10000 }, (source, { chunk }) => {
86
- if (!isPageChunk(chunk))
87
- return source;
88
- hmrHooks.pageChunkModules.call(source.source().toString());
89
- return new webpack_sources_1.RawSource('{}');
84
+ const isBootstrapChunk = isPageChunk(chunk);
85
+ hmrHooks.chunkModulesRendered.call(source.source().toString(), isBootstrapChunk);
86
+ return isBootstrapChunk ? new webpack_sources_1.RawSource('{}') : source;
90
87
  });
91
88
  javascriptHooks.renderStartup.tap(PLUGIN_NAME, (source, _module, { chunk }) => {
92
89
  if (!isPageChunk(chunk))
@@ -1 +1 @@
1
- {"version":3,"file":"hmr-compiler-plugin.js","sourceRoot":"","sources":["../../src/compile/hmr-compiler-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hmr-compiler-plugin.js","sourceRoot":"","sources":["../../src/compile/hmr-compiler-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import type { Compiler } from 'webpack';
2
- export interface HmrPatchPluginOptions {
3
- patchHistoryLimit?: number;
4
- }
2
+ import { HmrPatchProcessorOptions } from "./hmr-patch-processor";
3
+ type HmrPatchPluginOptions = Partial<HmrPatchProcessorOptions>;
5
4
  export declare class HmrPatchPlugin {
6
- private hasCompletedInitialBuild;
7
- private readonly patchManager;
5
+ private previousHash;
6
+ private initialBuildDone;
7
+ private readonly patchProcessor;
8
8
  private readonly emittedAssetSources;
9
9
  constructor(options: HmrPatchPluginOptions);
10
10
  apply(compiler: Compiler): void;
@@ -14,3 +14,4 @@ export declare class HmrPatchPlugin {
14
14
  private emitPatchAsset;
15
15
  private reset;
16
16
  }
17
+ export {};
@@ -1,215 +1,68 @@
1
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 () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
2
  Object.defineProperty(exports, "__esModule", { value: true });
39
3
  exports.HmrPatchPlugin = void 0;
40
- const generator_1 = __importDefault(require("@babel/generator"));
41
- const parser_1 = require("@babel/parser");
42
- const template_1 = __importDefault(require("@babel/template"));
43
- const traverse_1 = __importDefault(require("@babel/traverse"));
44
- const t = __importStar(require("@babel/types"));
45
4
  const webpack_sources_1 = require("webpack-sources");
46
5
  const constants_1 = require("../constants");
47
6
  const hmr_compiler_plugin_1 = require("../compile/hmr-compiler-plugin");
48
- const hmr_patch_manager_1 = require("./hmr-patch-manager");
49
7
  const hmr_patch_runtime_plugin_1 = require("./hmr-patch-runtime-plugin");
8
+ const hmr_patch_processor_1 = require("./hmr-patch-processor");
50
9
  const PLUGIN_NAME = 'HmrPatchPlugin';
51
10
  const HOT_UPDATE_MANIFEST_SUFFIX = '.hot-update.json';
52
11
  const HOT_UPDATE_SCRIPT_SUFFIX = '.hot-update.js';
53
- const HOT_UPDATE_HASH_PATTERN = /\.([0-9a-f]+)\.hot-update\.json$/i;
54
12
  const STYLE_ASSET_PATTERN = /\.(?:css|wxss|acss|ttss|qss|jxss)(?:\.map)?$/i;
55
13
  const TEMPLATE_RUNTIME_ASSET_PATTERN = /(?:^|\/)(?:base\.wxml|utils\.wxs)$/i;
56
- const collectModuleFactories = (source, moduleFactories) => {
57
- const ast = (0, parser_1.parse)(`(${source})`, { sourceType: 'script' });
58
- const statement = ast.program.body[0];
59
- if (!t.isExpressionStatement(statement) || !t.isObjectExpression(statement.expression)) {
60
- throw new Error('[taro-hmr-compile] Page Chunk 模块段不是对象表达式');
61
- }
62
- statement.expression.properties.forEach(property => {
63
- if (!t.isObjectProperty(property) || !t.isExpression(property.value)) {
64
- throw new Error('[taro-hmr-compile] Page Chunk 模块对象包含无法识别的属性');
65
- }
66
- const { key } = property;
67
- let moduleId;
68
- if (t.isStringLiteral(key) || t.isNumericLiteral(key))
69
- moduleId = String(key.value);
70
- else if (t.isIdentifier(key) && !property.computed)
71
- moduleId = key.name;
72
- else
73
- throw new Error('[taro-hmr-compile] Page Chunk 模块对象包含无法识别的模块 ID');
74
- moduleFactories.set(moduleId, property.value);
75
- });
76
- };
77
- /** 将本轮 Webpack hot-update 产物转换为内部 update 表示。 */
78
- const createUpdatePatch = (toHash, assets) => {
79
- const manifestAsset = assets.manifests[0];
80
- const hashMatch = manifestAsset.name.match(HOT_UPDATE_HASH_PATTERN);
81
- if (!hashMatch)
82
- throw new Error(`[taro-hmr-compile] 无法从 ${manifestAsset.name} 提取 HMR 基线 hash`);
83
- const moduleFactories = new Map();
84
- assets.scripts.forEach(asset => {
85
- const ast = (0, parser_1.parse)(asset.source.source().toString(), { sourceType: 'script' });
86
- (0, traverse_1.default)(ast, {
87
- CallExpression(nodePath) {
88
- const { callee } = nodePath.node;
89
- if (!t.isMemberExpression(callee) || !t.isIdentifier(callee.object, { name: 'wx' }))
90
- return;
91
- if (!t.isStringLiteral(callee.property) || !callee.property.value.startsWith('webpackHotUpdate'))
92
- return;
93
- const modules = nodePath.node.arguments[1];
94
- if (!t.isObjectExpression(modules))
95
- return;
96
- modules.properties.forEach(property => {
97
- if (!t.isObjectProperty(property) || !t.isExpression(property.value)) {
98
- throw new Error('[taro-hmr-compile] HMR 模块对象包含无法识别的属性');
99
- }
100
- const { key } = property;
101
- let moduleId;
102
- if (t.isStringLiteral(key) || t.isNumericLiteral(key))
103
- moduleId = String(key.value);
104
- else if (t.isIdentifier(key) && !property.computed)
105
- moduleId = key.name;
106
- else
107
- throw new Error('[taro-hmr-compile] HMR 模块对象包含无法识别的模块 ID');
108
- moduleFactories.set(moduleId, property.value);
109
- });
110
- },
111
- });
112
- });
113
- const removedModules = new Set();
114
- assets.manifests.forEach(asset => {
115
- var _a;
116
- const manifest = JSON.parse(asset.source.source().toString());
117
- (_a = manifest.m) === null || _a === void 0 ? void 0 : _a.forEach(moduleId => removedModules.add(String(moduleId)));
118
- });
119
- return {
120
- type: 'update',
121
- fromHash: hashMatch[1],
122
- toHash,
123
- moduleFactories,
124
- removedModules: Array.from(removedModules),
125
- };
126
- };
127
- /** 将内部 Patch 表示序列化为固定 patch.js。 */
128
- const createPatchAssetSource = (patches) => {
129
- const buildBootstrapPatchNode = template_1.default.expression(`({
130
- type: 'bootstrap',
131
- modules: %%MODULES%%
132
- })`);
133
- const buildUpdatePatchNode = template_1.default.expression(`({
134
- type: 'update',
135
- fromHash: %%FROM_HASH%%,
136
- toHash: %%TO_HASH%%,
137
- modules: %%MODULES%%,
138
- removedModules: %%REMOVED_MODULES%%
139
- })`);
140
- const patchNodes = patches.map(patch => {
141
- const modules = t.objectExpression(Array.from(patch.moduleFactories, ([moduleId, factory]) => t.objectProperty(t.stringLiteral(moduleId), factory)));
142
- if (patch.type === 'bootstrap')
143
- return buildBootstrapPatchNode({ MODULES: modules });
144
- return buildUpdatePatchNode({
145
- FROM_HASH: t.stringLiteral(patch.fromHash),
146
- TO_HASH: t.stringLiteral(patch.toHash),
147
- MODULES: modules,
148
- REMOVED_MODULES: t.arrayExpression(patch.removedModules.map(moduleId => t.stringLiteral(moduleId))),
149
- });
150
- });
151
- const statements = template_1.default.statements('module.exports = %%PATCHES%%;')({ PATCHES: t.arrayExpression(patchNodes) });
152
- return (0, generator_1.default)(t.program(statements)).code;
153
- };
154
14
  const isPassthroughAsset = (assetName) => {
155
15
  return STYLE_ASSET_PATTERN.test(assetName) || TEMPLATE_RUNTIME_ASSET_PATTERN.test(assetName);
156
16
  };
157
17
  class HmrPatchPlugin {
158
18
  constructor(options) {
159
- var _a;
160
- this.hasCompletedInitialBuild = false;
19
+ this.previousHash = '';
20
+ this.initialBuildDone = false;
161
21
  this.emittedAssetSources = new Map();
162
- this.patchManager = new hmr_patch_manager_1.HmrPatchManager((_a = options.patchHistoryLimit) !== null && _a !== void 0 ? _a : constants_1.DEFAULT_HMR_PATCH_HISTORY_LIMIT);
22
+ this.patchProcessor = new hmr_patch_processor_1.HmrPatchProcessor(options);
163
23
  }
164
24
  apply(compiler) {
165
25
  new hmr_patch_runtime_plugin_1.HmrPatchRuntimePlugin().apply(compiler);
166
26
  compiler.hooks.compilation.tap(PLUGIN_NAME, compilation => {
167
- const initialPageFactories = new Map();
168
- hmr_compiler_plugin_1.HmrCompilerPlugin.getCompilationHooks(compilation).pageChunkModules.tap(PLUGIN_NAME, source => {
169
- collectModuleFactories(source, initialPageFactories);
27
+ hmr_compiler_plugin_1.HmrCompilerPlugin.getCompilationHooks(compilation).chunkModulesRendered.tap(PLUGIN_NAME, (source, isBootstrapChunk) => {
28
+ this.patchProcessor.processChunkModules({ compilation, source, isBootstrapChunk });
170
29
  });
171
30
  // 等 Webpack 生成完整的 hot-update assets 后,再统一转换成固定的 patch.js。
172
31
  const stage = compiler.webpack.Compilation.PROCESS_ASSETS_STAGE_REPORT;
173
- compilation.hooks.processAssets.tap({ name: PLUGIN_NAME, stage }, () => {
174
- this.processAssets(compilation, initialPageFactories);
175
- });
32
+ compilation.hooks.processAssets.tap({ name: PLUGIN_NAME, stage }, () => this.processAssets(compilation));
176
33
  });
177
34
  compiler.hooks.afterEmit.tap(PLUGIN_NAME, compilation => {
178
35
  const isSuccessful = compilation.errors.length === 0 && Boolean(compilation.hash);
179
- this.hasCompletedInitialBuild = this.hasCompletedInitialBuild || isSuccessful;
36
+ this.initialBuildDone = this.initialBuildDone || isSuccessful;
180
37
  });
181
38
  compiler.hooks.watchClose.tap(PLUGIN_NAME, () => this.reset());
182
39
  }
183
- processAssets(compilation, initialPageFactories) {
184
- if (!compilation.hash || compilation.errors.length > 0)
40
+ processAssets(compilation) {
41
+ const { previousHash: fromHash, initialBuildDone } = this;
42
+ const { hash: toHash, errors: compilationErrors } = compilation;
43
+ if (!toHash || compilationErrors.length > 0)
185
44
  return;
186
- const originalAssets = compilation.getAssets();
187
- if (!this.hasCompletedInitialBuild) {
188
- this.patchManager.clear();
189
- this.emittedAssetSources.clear();
190
- originalAssets.forEach(asset => {
191
- if (isPassthroughAsset(asset.name)) {
192
- this.emittedAssetSources.set(asset.name, asset.source.source().toString());
193
- }
45
+ // 首次编译完成过滤文件输出
46
+ if (!initialBuildDone) {
47
+ this.patchProcessor.commitBootstrapFactories(compilation);
48
+ compilation.getAssets().forEach(asset => {
49
+ if (!isPassthroughAsset(asset.name))
50
+ return;
51
+ this.emittedAssetSources.set(asset.name, asset.source.source().toString());
194
52
  });
195
- this.patchManager.setBootstrap(initialPageFactories);
196
- this.emitPatchAsset(compilation, false);
197
- return;
198
- }
199
- const hotUpdateAssets = {
200
- manifests: originalAssets.filter(asset => asset.name.endsWith(HOT_UPDATE_MANIFEST_SUFFIX)),
201
- scripts: originalAssets.filter(asset => asset.name.endsWith(HOT_UPDATE_SCRIPT_SUFFIX)),
202
- };
203
- if (hotUpdateAssets.manifests.length) {
204
- this.patchManager.appendUpdate(createUpdatePatch(compilation.hash, hotUpdateAssets));
205
- this.emitPatchAsset(compilation, true);
53
+ this.previousHash = toHash;
54
+ return this.emitPatchAsset(compilation, false);
206
55
  }
207
- // 增量 compilation 仍可能包含普通 chunk 资产,不能让它们覆盖初始 PageShell。
208
- this.removeSupersededAssets(compilation, originalAssets);
56
+ const manifests = compilation.getAssets().filter(asset => asset.name.endsWith(HOT_UPDATE_MANIFEST_SUFFIX));
57
+ const scripts = compilation.getAssets().filter(asset => asset.name.endsWith(HOT_UPDATE_SCRIPT_SUFFIX));
58
+ this.patchProcessor.processUpdate({ toHash, fromHash, manifests, scripts });
59
+ this.emitPatchAsset(compilation, true);
60
+ this.removeSupersededAssets(compilation);
61
+ this.previousHash = toHash;
209
62
  }
210
63
  /** 热更新转换完成后,保留固定 patch 与发生变化的模板、平台样式资产。 */
211
- removeSupersededAssets(compilation, assets) {
212
- assets.forEach(asset => {
64
+ removeSupersededAssets(compilation) {
65
+ compilation.getAssets().forEach(asset => {
213
66
  if (asset.name === constants_1.HMR_PATCH_ASSET)
214
67
  return;
215
68
  if (!isPassthroughAsset(asset.name))
@@ -222,7 +75,7 @@ class HmrPatchPlugin {
222
75
  });
223
76
  }
224
77
  emitPatchAsset(compilation, isHotUpdate) {
225
- const source = new webpack_sources_1.RawSource(createPatchAssetSource(this.patchManager.getPatches()));
78
+ const source = new webpack_sources_1.RawSource(this.patchProcessor.generate());
226
79
  const assetInfo = { hotModuleReplacement: isHotUpdate };
227
80
  if (compilation.getAsset(constants_1.HMR_PATCH_ASSET))
228
81
  compilation.updateAsset(constants_1.HMR_PATCH_ASSET, source, assetInfo);
@@ -230,9 +83,10 @@ class HmrPatchPlugin {
230
83
  compilation.emitAsset(constants_1.HMR_PATCH_ASSET, source, assetInfo);
231
84
  }
232
85
  reset() {
233
- this.hasCompletedInitialBuild = false;
86
+ this.previousHash = '';
87
+ this.initialBuildDone = false;
234
88
  this.emittedAssetSources.clear();
235
- this.patchManager.clear();
89
+ this.patchProcessor.reset();
236
90
  }
237
91
  }
238
92
  exports.HmrPatchPlugin = HmrPatchPlugin;
@@ -1 +1 @@
1
- {"version":3,"file":"hmr-patch-plugin.js","sourceRoot":"","sources":["../../src/patch/hmr-patch-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hmr-patch-plugin.js","sourceRoot":"","sources":["../../src/patch/hmr-patch-plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { type Compilation } from "webpack";
2
+ import { ParseHotUpdateAssetsOptions } from "./utils";
3
+ interface ProcessChunkModulesOptions {
4
+ source: string;
5
+ compilation: Compilation;
6
+ isBootstrapChunk: boolean;
7
+ }
8
+ export interface HmrPatchProcessorOptions {
9
+ patchHistoryLimit?: number;
10
+ }
11
+ interface ProcessUpdateOptions extends ParseHotUpdateAssetsOptions {
12
+ fromHash: string;
13
+ toHash: string;
14
+ }
15
+ export declare class HmrPatchProcessor {
16
+ private readonly bootstrapFactories;
17
+ private readonly bootstrapFactoriesByCompilation;
18
+ private readonly moduleHashesByFullHash;
19
+ private recentUpdatePatches;
20
+ private readonly opts;
21
+ constructor(opts: Partial<HmrPatchProcessorOptions>);
22
+ private getChangedModuleIdsByFullHash;
23
+ processUpdate(opt: ProcessUpdateOptions): void;
24
+ processChunkModules(opt: ProcessChunkModulesOptions): void;
25
+ commitBootstrapFactories(compilation: Compilation): void;
26
+ generate(): string;
27
+ reset(): void;
28
+ }
29
+ export {};