@umijs/mfsu 4.0.7 → 4.0.10
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/compiled/is-absolute-url/LICENSE +9 -0
- package/compiled/is-absolute-url/index.d.ts +22 -0
- package/compiled/is-absolute-url/index.js +1 -0
- package/compiled/is-absolute-url/package.json +1 -0
- package/dist/babelPlugins/awaitImport/MFImport.js +59 -66
- package/dist/babelPlugins/awaitImport/awaitImport.d.ts +1 -1
- package/dist/babelPlugins/awaitImport/awaitImport.js +103 -117
- package/dist/babelPlugins/awaitImport/checkMatch.js +131 -119
- package/dist/babelPlugins/awaitImport/getAliasedPath.js +54 -35
- package/dist/babelPlugins/awaitImport/getRealPath.js +42 -21
- package/dist/babelPlugins/awaitImport/isExternals.js +55 -26
- package/dist/babelPlugins/awaitImport/parseSpecifiers.js +51 -52
- package/dist/constants.js +47 -10
- package/dist/dep/dep.js +112 -83
- package/dist/dep/getCJSExports.js +60 -53
- package/dist/dep/getExposeFromContent.js +71 -59
- package/dist/dep/getModuleExports.js +58 -32
- package/dist/depBuilder/depBuilder.js +191 -158
- package/dist/depBuilder/getESBuildEntry.js +35 -12
- package/dist/depInfo.js +75 -53
- package/dist/esbuildHandlers/autoCssModules.js +43 -22
- package/dist/esbuildHandlers/awaitImport/index.js +82 -70
- package/dist/index.js +32 -22
- package/dist/loader/esbuild.js +87 -35
- package/dist/mfsu/mfsu.d.ts +5 -1
- package/dist/mfsu/mfsu.js +236 -257
- package/dist/mfsu/strategyCompileTime.js +131 -99
- package/dist/mfsu/strategyStaticAnalyze.js +151 -115
- package/dist/moduleGraph.js +227 -186
- package/dist/staticDepInfo/importParser.js +28 -6
- package/dist/staticDepInfo/simulations/babel-plugin-import.js +99 -91
- package/dist/staticDepInfo/staticDepInfo.js +239 -197
- package/dist/types.js +33 -8
- package/dist/utils/makeArray.js +29 -5
- package/dist/utils/trimFileContent.js +29 -5
- package/dist/webpackPlugins/buildDepPlugin.js +49 -25
- package/dist/webpackPlugins/depChunkIdPrefixPlugin.js +44 -19
- package/dist/webpackPlugins/stripSourceMapUrlPlugin.js +46 -27
- package/dist/webpackPlugins/writeCachePlugin.js +39 -15
- package/package.json +8 -6
|
@@ -1,164 +1,197 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
+
var __spreadValues = (a, b) => {
|
|
11
|
+
for (var prop in b || (b = {}))
|
|
12
|
+
if (__hasOwnProp.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
if (__getOwnPropSymbols)
|
|
15
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
+
if (__propIsEnum.call(b, prop))
|
|
17
|
+
__defNormalProp(a, prop, b[prop]);
|
|
17
18
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
inlineStyle: true,
|
|
61
|
-
});
|
|
62
|
-
utils_1.logger.event(`[mfsu] compiled with esbuild successfully in ${+new Date() - date} ms`);
|
|
19
|
+
return a;
|
|
20
|
+
};
|
|
21
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
22
|
+
var __export = (target, all) => {
|
|
23
|
+
for (var name in all)
|
|
24
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
25
|
+
};
|
|
26
|
+
var __copyProps = (to, from, except, desc) => {
|
|
27
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
28
|
+
for (let key of __getOwnPropNames(from))
|
|
29
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
30
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
31
|
+
}
|
|
32
|
+
return to;
|
|
33
|
+
};
|
|
34
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
35
|
+
|
|
36
|
+
// src/depBuilder/depBuilder.ts
|
|
37
|
+
var depBuilder_exports = {};
|
|
38
|
+
__export(depBuilder_exports, {
|
|
39
|
+
DepBuilder: () => DepBuilder
|
|
40
|
+
});
|
|
41
|
+
module.exports = __toCommonJS(depBuilder_exports);
|
|
42
|
+
var import_bundler_esbuild = require("@umijs/bundler-esbuild");
|
|
43
|
+
var import_utils = require("@umijs/utils");
|
|
44
|
+
var import_fs = require("fs");
|
|
45
|
+
var import_path = require("path");
|
|
46
|
+
var import_constants = require("../constants");
|
|
47
|
+
var import_depChunkIdPrefixPlugin = require("../webpackPlugins/depChunkIdPrefixPlugin");
|
|
48
|
+
var import_stripSourceMapUrlPlugin = require("../webpackPlugins/stripSourceMapUrlPlugin");
|
|
49
|
+
var import_getESBuildEntry = require("./getESBuildEntry");
|
|
50
|
+
var DepBuilder = class {
|
|
51
|
+
constructor(opts) {
|
|
52
|
+
this.completeFns = [];
|
|
53
|
+
this.isBuilding = false;
|
|
54
|
+
this.opts = opts;
|
|
55
|
+
}
|
|
56
|
+
async buildWithWebpack(opts) {
|
|
57
|
+
const config = this.getWebpackConfig({ deps: opts.deps });
|
|
58
|
+
return new Promise((resolve, reject) => {
|
|
59
|
+
const compiler = this.opts.mfsu.opts.implementor(config);
|
|
60
|
+
compiler.run((err, stats) => {
|
|
63
61
|
opts.onBuildComplete();
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
const newOpts = {
|
|
75
|
-
...opts,
|
|
76
|
-
onBuildComplete,
|
|
77
|
-
};
|
|
78
|
-
if (this.opts.mfsu.opts.buildDepWithESBuild) {
|
|
79
|
-
await this.buildWithESBuild(newOpts);
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
await this.buildWithWebpack(newOpts);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
catch (e) {
|
|
86
|
-
onBuildComplete();
|
|
87
|
-
throw e;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
onBuildComplete(fn) {
|
|
91
|
-
if (this.isBuilding) {
|
|
92
|
-
this.completeFns.push(fn);
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
fn();
|
|
62
|
+
if (err || (stats == null ? void 0 : stats.hasErrors())) {
|
|
63
|
+
if (err) {
|
|
64
|
+
reject(err);
|
|
65
|
+
}
|
|
66
|
+
if (stats) {
|
|
67
|
+
const errorMsg = stats.toString("errors-only");
|
|
68
|
+
reject(new Error(errorMsg));
|
|
69
|
+
}
|
|
70
|
+
} else {
|
|
71
|
+
resolve(stats);
|
|
96
72
|
}
|
|
73
|
+
compiler.close(() => {
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
async buildWithESBuild(opts) {
|
|
79
|
+
const entryContent = (0, import_getESBuildEntry.getESBuildEntry)({ deps: opts.deps });
|
|
80
|
+
const ENTRY_FILE = "esbuild-entry.js";
|
|
81
|
+
const tmpDir = this.opts.mfsu.opts.tmpBase;
|
|
82
|
+
const entryPath = (0, import_path.join)(tmpDir, ENTRY_FILE);
|
|
83
|
+
(0, import_fs.writeFileSync)(entryPath, entryContent, "utf-8");
|
|
84
|
+
const date = new Date().getTime();
|
|
85
|
+
await (0, import_bundler_esbuild.build)({
|
|
86
|
+
cwd: this.opts.mfsu.opts.cwd,
|
|
87
|
+
entry: {
|
|
88
|
+
[`${import_constants.MF_VA_PREFIX}remoteEntry`]: entryPath
|
|
89
|
+
},
|
|
90
|
+
config: __spreadProps(__spreadValues({}, this.opts.mfsu.opts.depBuildConfig), {
|
|
91
|
+
outputPath: tmpDir,
|
|
92
|
+
alias: this.opts.mfsu.alias,
|
|
93
|
+
externals: this.opts.mfsu.externals
|
|
94
|
+
}),
|
|
95
|
+
inlineStyle: true
|
|
96
|
+
});
|
|
97
|
+
import_utils.logger.event(`[mfsu] compiled with esbuild successfully in ${+new Date() - date} ms`);
|
|
98
|
+
opts.onBuildComplete();
|
|
99
|
+
}
|
|
100
|
+
async build(opts) {
|
|
101
|
+
this.isBuilding = true;
|
|
102
|
+
const onBuildComplete = () => {
|
|
103
|
+
this.isBuilding = false;
|
|
104
|
+
this.completeFns.forEach((fn) => fn());
|
|
105
|
+
this.completeFns = [];
|
|
106
|
+
};
|
|
107
|
+
try {
|
|
108
|
+
await this.writeMFFiles({ deps: opts.deps });
|
|
109
|
+
const newOpts = __spreadProps(__spreadValues({}, opts), {
|
|
110
|
+
onBuildComplete
|
|
111
|
+
});
|
|
112
|
+
if (this.opts.mfsu.opts.buildDepWithESBuild) {
|
|
113
|
+
await this.buildWithESBuild(newOpts);
|
|
114
|
+
} else {
|
|
115
|
+
await this.buildWithWebpack(newOpts);
|
|
116
|
+
}
|
|
117
|
+
} catch (e) {
|
|
118
|
+
onBuildComplete();
|
|
119
|
+
throw e;
|
|
97
120
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
(0, fs_1.writeFileSync)((0, path_1.join)(tmpBase, dep.filePath), content, 'utf-8');
|
|
105
|
-
}
|
|
106
|
-
// index file
|
|
107
|
-
(0, fs_1.writeFileSync)((0, path_1.join)(tmpBase, 'index.js'), '"😛"', 'utf-8');
|
|
121
|
+
}
|
|
122
|
+
onBuildComplete(fn) {
|
|
123
|
+
if (this.isBuilding) {
|
|
124
|
+
this.completeFns.push(fn);
|
|
125
|
+
} else {
|
|
126
|
+
fn();
|
|
108
127
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
// disable devtool
|
|
117
|
-
depConfig.devtool = false;
|
|
118
|
-
// disable library
|
|
119
|
-
// library 会影响 external 的语法,导致报错
|
|
120
|
-
// ref: https://github.com/umijs/plugins/blob/6d3fc2d/packages/plugin-qiankun/src/slave/index.ts#L83
|
|
121
|
-
if ((_a = depConfig.output) === null || _a === void 0 ? void 0 : _a.library)
|
|
122
|
-
delete depConfig.output.library;
|
|
123
|
-
if ((_b = depConfig.output) === null || _b === void 0 ? void 0 : _b.libraryTarget)
|
|
124
|
-
delete depConfig.output.libraryTarget;
|
|
125
|
-
// merge all deps to vendor
|
|
126
|
-
depConfig.optimization || (depConfig.optimization = {});
|
|
127
|
-
depConfig.optimization.splitChunks = {
|
|
128
|
-
chunks: 'all',
|
|
129
|
-
maxInitialRequests: Infinity,
|
|
130
|
-
minSize: 0,
|
|
131
|
-
cacheGroups: {
|
|
132
|
-
vendor: {
|
|
133
|
-
test: /.+/,
|
|
134
|
-
name(_module, _chunks, cacheGroupKey) {
|
|
135
|
-
return `${constants_1.MF_DEP_PREFIX}___${cacheGroupKey}`;
|
|
136
|
-
},
|
|
137
|
-
},
|
|
138
|
-
},
|
|
139
|
-
};
|
|
140
|
-
depConfig.plugins = depConfig.plugins || [];
|
|
141
|
-
depConfig.plugins.push(new depChunkIdPrefixPlugin_1.DepChunkIdPrefixPlugin());
|
|
142
|
-
depConfig.plugins.push(new stripSourceMapUrlPlugin_1.StripSourceMapUrlPlugin({
|
|
143
|
-
webpack: this.opts.mfsu.opts.implementor,
|
|
144
|
-
}));
|
|
145
|
-
depConfig.plugins.push(new this.opts.mfsu.opts.implementor.ProgressPlugin((percent, msg) => {
|
|
146
|
-
this.opts.mfsu.onProgress({ percent, status: msg });
|
|
147
|
-
}));
|
|
148
|
-
const exposes = opts.deps.reduce((memo, dep) => {
|
|
149
|
-
memo[`./${dep.file}`] = (0, path_1.join)(this.opts.mfsu.opts.tmpBase, dep.filePath);
|
|
150
|
-
return memo;
|
|
151
|
-
}, {});
|
|
152
|
-
depConfig.plugins.push(new this.opts.mfsu.opts.implementor.container.ModuleFederationPlugin({
|
|
153
|
-
library: {
|
|
154
|
-
type: 'global',
|
|
155
|
-
name: mfName,
|
|
156
|
-
},
|
|
157
|
-
name: mfName,
|
|
158
|
-
filename: constants_1.REMOTE_FILE_FULL,
|
|
159
|
-
exposes,
|
|
160
|
-
}));
|
|
161
|
-
return depConfig;
|
|
128
|
+
}
|
|
129
|
+
async writeMFFiles(opts) {
|
|
130
|
+
const tmpBase = this.opts.mfsu.opts.tmpBase;
|
|
131
|
+
import_utils.fsExtra.mkdirpSync(tmpBase);
|
|
132
|
+
for (const dep of opts.deps) {
|
|
133
|
+
const content = await dep.buildExposeContent();
|
|
134
|
+
(0, import_fs.writeFileSync)((0, import_path.join)(tmpBase, dep.filePath), content, "utf-8");
|
|
162
135
|
}
|
|
163
|
-
}
|
|
164
|
-
|
|
136
|
+
(0, import_fs.writeFileSync)((0, import_path.join)(tmpBase, "index.js"), '"\u{1F61B}"', "utf-8");
|
|
137
|
+
}
|
|
138
|
+
getWebpackConfig(opts) {
|
|
139
|
+
var _a, _b;
|
|
140
|
+
const mfName = this.opts.mfsu.opts.mfName;
|
|
141
|
+
const depConfig = import_utils.lodash.cloneDeep(this.opts.mfsu.depConfig);
|
|
142
|
+
depConfig.entry = (0, import_path.join)(this.opts.mfsu.opts.tmpBase, "index.js");
|
|
143
|
+
depConfig.output.path = this.opts.mfsu.opts.tmpBase;
|
|
144
|
+
depConfig.output.publicPath = "auto";
|
|
145
|
+
depConfig.devtool = false;
|
|
146
|
+
if ((_a = depConfig.output) == null ? void 0 : _a.library)
|
|
147
|
+
delete depConfig.output.library;
|
|
148
|
+
if ((_b = depConfig.output) == null ? void 0 : _b.libraryTarget)
|
|
149
|
+
delete depConfig.output.libraryTarget;
|
|
150
|
+
depConfig.optimization || (depConfig.optimization = {});
|
|
151
|
+
depConfig.optimization.splitChunks = {
|
|
152
|
+
chunks: (chunk) => {
|
|
153
|
+
const hasShared = chunk.getModules().some((m) => {
|
|
154
|
+
return m.type === "consume-shared-module" || m.type === "provide-module" || m.type === "provide-shared-module";
|
|
155
|
+
});
|
|
156
|
+
return !hasShared;
|
|
157
|
+
},
|
|
158
|
+
maxInitialRequests: Infinity,
|
|
159
|
+
minSize: 0,
|
|
160
|
+
cacheGroups: {
|
|
161
|
+
vendor: {
|
|
162
|
+
test: /.+/,
|
|
163
|
+
name(_module, _chunks, cacheGroupKey) {
|
|
164
|
+
return `${import_constants.MF_DEP_PREFIX}___${cacheGroupKey}`;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
depConfig.plugins = depConfig.plugins || [];
|
|
170
|
+
depConfig.plugins.push(new import_depChunkIdPrefixPlugin.DepChunkIdPrefixPlugin());
|
|
171
|
+
depConfig.plugins.push(new import_stripSourceMapUrlPlugin.StripSourceMapUrlPlugin({
|
|
172
|
+
webpack: this.opts.mfsu.opts.implementor
|
|
173
|
+
}));
|
|
174
|
+
depConfig.plugins.push(new this.opts.mfsu.opts.implementor.ProgressPlugin((percent, msg) => {
|
|
175
|
+
this.opts.mfsu.onProgress({ percent, status: msg });
|
|
176
|
+
}));
|
|
177
|
+
const exposes = opts.deps.reduce((memo, dep) => {
|
|
178
|
+
memo[`./${dep.file}`] = (0, import_path.join)(this.opts.mfsu.opts.tmpBase, dep.filePath);
|
|
179
|
+
return memo;
|
|
180
|
+
}, {});
|
|
181
|
+
depConfig.plugins.push(new this.opts.mfsu.opts.implementor.container.ModuleFederationPlugin({
|
|
182
|
+
library: {
|
|
183
|
+
type: "global",
|
|
184
|
+
name: mfName
|
|
185
|
+
},
|
|
186
|
+
name: mfName,
|
|
187
|
+
filename: import_constants.REMOTE_FILE_FULL,
|
|
188
|
+
exposes,
|
|
189
|
+
shared: this.opts.mfsu.opts.shared || {}
|
|
190
|
+
}));
|
|
191
|
+
return depConfig;
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
195
|
+
0 && (module.exports = {
|
|
196
|
+
DepBuilder
|
|
197
|
+
});
|
|
@@ -1,10 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
|
|
19
|
+
// src/depBuilder/getESBuildEntry.ts
|
|
20
|
+
var getESBuildEntry_exports = {};
|
|
21
|
+
__export(getESBuildEntry_exports, {
|
|
22
|
+
getESBuildEntry: () => getESBuildEntry
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(getESBuildEntry_exports);
|
|
25
|
+
var import_constants = require("../constants");
|
|
26
|
+
var ES_INTEROP_FUNC = `__exportStar`;
|
|
27
|
+
var ES_INTEROP_HELPER = `
|
|
8
28
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
29
|
if (k2 === undefined) k2 = k;
|
|
10
30
|
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
@@ -17,7 +37,7 @@ var ${ES_INTEROP_FUNC} = (this && this.__exportStar) || function(m, exports) {
|
|
|
17
37
|
};
|
|
18
38
|
`;
|
|
19
39
|
function getESBuildEntry(opts) {
|
|
20
|
-
|
|
40
|
+
return `
|
|
21
41
|
(function() {
|
|
22
42
|
/******/ "use strict";
|
|
23
43
|
/******/ var __webpack_modules__ = ({});
|
|
@@ -282,7 +302,7 @@ var __webpack_exports__ = {};
|
|
|
282
302
|
var exports = __webpack_exports__;
|
|
283
303
|
${ES_INTEROP_HELPER}
|
|
284
304
|
var moduleMap = {
|
|
285
|
-
${opts.deps.map(getDepModuleStr).join(
|
|
305
|
+
${opts.deps.map(getDepModuleStr).join(",\n")}
|
|
286
306
|
};
|
|
287
307
|
var get = function(module, getScope) {
|
|
288
308
|
__webpack_require__.R = getScope;
|
|
@@ -313,12 +333,11 @@ ${opts.deps.map(getDepModuleStr).join(',\n')}
|
|
|
313
333
|
})();
|
|
314
334
|
`;
|
|
315
335
|
}
|
|
316
|
-
exports.getESBuildEntry = getESBuildEntry;
|
|
317
336
|
function getDepModuleStr(dep) {
|
|
318
|
-
|
|
337
|
+
return `
|
|
319
338
|
"./${dep.file}": function() {
|
|
320
339
|
return new Promise(resolve => {
|
|
321
|
-
import('./${
|
|
340
|
+
import('./${import_constants.MF_VA_PREFIX}${dep.normalizedFile}.js').then(module => {
|
|
322
341
|
module.default && ${ES_INTEROP_FUNC}(module, module.default);
|
|
323
342
|
resolve(() => module.default || module);
|
|
324
343
|
});
|
|
@@ -326,3 +345,7 @@ function getDepModuleStr(dep) {
|
|
|
326
345
|
}
|
|
327
346
|
`.trim();
|
|
328
347
|
}
|
|
348
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
349
|
+
0 && (module.exports = {
|
|
350
|
+
getESBuildEntry
|
|
351
|
+
});
|
package/dist/depInfo.js
CHANGED
|
@@ -1,57 +1,79 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
|
|
19
|
+
// src/depInfo.ts
|
|
20
|
+
var depInfo_exports = {};
|
|
21
|
+
__export(depInfo_exports, {
|
|
22
|
+
DepInfo: () => DepInfo
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(depInfo_exports);
|
|
25
|
+
var import_utils = require("@umijs/utils");
|
|
26
|
+
var import_fs = require("fs");
|
|
27
|
+
var import_path = require("path");
|
|
28
|
+
var import_moduleGraph = require("./moduleGraph");
|
|
29
|
+
var DepInfo = class {
|
|
30
|
+
constructor(opts) {
|
|
31
|
+
this.moduleGraph = new import_moduleGraph.ModuleGraph();
|
|
32
|
+
this.cacheDependency = {};
|
|
33
|
+
this.opts = opts;
|
|
34
|
+
this.cacheFilePath = (0, import_path.join)(this.opts.mfsu.opts.tmpBase, "MFSU_CACHE.json");
|
|
35
|
+
}
|
|
36
|
+
shouldBuild() {
|
|
37
|
+
if (!import_utils.lodash.isEqual(this.cacheDependency, this.opts.mfsu.opts.getCacheDependency())) {
|
|
38
|
+
return "cacheDependency has changed";
|
|
14
39
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return 'cacheDependency has changed';
|
|
18
|
-
}
|
|
19
|
-
if (this.moduleGraph.hasDepChanged()) {
|
|
20
|
-
return 'moduleGraph has changed';
|
|
21
|
-
}
|
|
22
|
-
// fixme always rebuild in dev
|
|
23
|
-
return false;
|
|
40
|
+
if (this.moduleGraph.hasDepChanged()) {
|
|
41
|
+
return "moduleGraph has changed";
|
|
24
42
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
snapshot() {
|
|
46
|
+
this.cacheDependency = this.opts.mfsu.opts.getCacheDependency();
|
|
47
|
+
this.moduleGraph.snapshotDeps();
|
|
48
|
+
}
|
|
49
|
+
loadCache() {
|
|
50
|
+
if ((0, import_fs.existsSync)(this.cacheFilePath)) {
|
|
51
|
+
import_utils.logger.info("[MFSU] restore cache");
|
|
52
|
+
const { cacheDependency, moduleGraph } = JSON.parse((0, import_fs.readFileSync)(this.cacheFilePath, "utf-8"));
|
|
53
|
+
this.cacheDependency = cacheDependency;
|
|
54
|
+
this.moduleGraph.restore(moduleGraph);
|
|
28
55
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
56
|
+
}
|
|
57
|
+
writeCache() {
|
|
58
|
+
import_utils.fsExtra.mkdirpSync((0, import_path.dirname)(this.cacheFilePath));
|
|
59
|
+
const newContent = JSON.stringify({
|
|
60
|
+
cacheDependency: this.cacheDependency,
|
|
61
|
+
moduleGraph: this.moduleGraph.toJSON()
|
|
62
|
+
}, null, 2);
|
|
63
|
+
if ((0, import_fs.existsSync)(this.cacheFilePath) && (0, import_fs.readFileSync)(this.cacheFilePath, "utf-8") === newContent) {
|
|
64
|
+
return;
|
|
36
65
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
return this.moduleGraph.depSnapshotModules;
|
|
52
|
-
}
|
|
53
|
-
getCacheFilePath() {
|
|
54
|
-
return this.cacheFilePath;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
exports.DepInfo = DepInfo;
|
|
66
|
+
import_utils.logger.info("[MFSU] write cache");
|
|
67
|
+
(0, import_fs.writeFileSync)(this.cacheFilePath, newContent, "utf-8");
|
|
68
|
+
}
|
|
69
|
+
getDepModules() {
|
|
70
|
+
return this.moduleGraph.depSnapshotModules;
|
|
71
|
+
}
|
|
72
|
+
getCacheFilePath() {
|
|
73
|
+
return this.cacheFilePath;
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
77
|
+
0 && (module.exports = {
|
|
78
|
+
DepInfo
|
|
79
|
+
});
|
|
@@ -1,24 +1,45 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
|
|
19
|
+
// src/esbuildHandlers/autoCssModules.ts
|
|
20
|
+
var autoCssModules_exports = {};
|
|
21
|
+
__export(autoCssModules_exports, {
|
|
22
|
+
autoCssModulesHandler: () => autoCssModulesHandler
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(autoCssModules_exports);
|
|
25
|
+
var import_utils = require("@umijs/utils");
|
|
26
|
+
var CSS_MODULES_QUERY = "?modules";
|
|
27
|
+
var QUERY_LENGTH = CSS_MODULES_QUERY.length;
|
|
7
28
|
function autoCssModulesHandler(opts) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
return code;
|
|
29
|
+
let { code } = opts;
|
|
30
|
+
let offset = 0;
|
|
31
|
+
opts.imports.forEach((i) => {
|
|
32
|
+
if (i.d < 0 && (0, import_utils.isStyleFile)({ filename: i.n })) {
|
|
33
|
+
const importSegment = code.substring(i.ss + offset, i.s + offset);
|
|
34
|
+
if (~importSegment.indexOf(" from")) {
|
|
35
|
+
code = `${code.substring(0, i.e + offset)}${CSS_MODULES_QUERY}${code.substring(i.e + offset)}`;
|
|
36
|
+
offset += QUERY_LENGTH;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
return code;
|
|
23
41
|
}
|
|
24
|
-
|
|
42
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
43
|
+
0 && (module.exports = {
|
|
44
|
+
autoCssModulesHandler
|
|
45
|
+
});
|