@modern-js/app-tools 2.12.0 → 2.13.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/CHANGELOG.md +65 -0
- package/dist/cjs/analyze/templates.js +8 -14
- package/dist/cjs/builder/builder-rspack/index.js +1 -22
- package/dist/cjs/builder/builder-webpack/index.js +0 -4
- package/dist/cjs/builder/generator/index.js +5 -0
- package/dist/cjs/builder/shared/builderPlugins/adapterHtml.js +39 -2
- package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +20 -0
- package/dist/cjs/config/legacy/index.js +3 -2
- package/dist/cjs/defineConfig.js +8 -4
- package/dist/cjs/index.js +7 -4
- package/dist/cjs/initialize/index.js +14 -2
- package/dist/cjs/locale/index.js +1 -1
- package/dist/esm/analyze/templates.js +5 -6
- package/dist/esm/builder/builder-rspack/index.js +1 -169
- package/dist/esm/builder/builder-webpack/index.js +5 -20
- package/dist/esm/builder/generator/index.js +17 -1
- package/dist/esm/builder/shared/builderPlugins/adapterHtml.js +216 -14
- package/dist/esm/builder/shared/builderPlugins/adapterSSR.js +10 -0
- package/dist/esm/config/legacy/index.js +2 -2
- package/dist/esm/defineConfig.js +3 -1
- package/dist/esm/index.js +3 -2
- package/dist/esm/initialize/index.js +13 -2
- package/dist/esm/locale/index.js +1 -1
- package/dist/esm-node/analyze/templates.js +8 -14
- package/dist/esm-node/builder/builder-rspack/index.js +1 -12
- package/dist/esm-node/builder/builder-webpack/index.js +0 -4
- package/dist/esm-node/builder/generator/index.js +5 -0
- package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.js +35 -3
- package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.js +10 -0
- package/dist/esm-node/config/legacy/index.js +3 -2
- package/dist/esm-node/defineConfig.js +8 -4
- package/dist/esm-node/index.js +4 -2
- package/dist/esm-node/initialize/index.js +14 -2
- package/dist/esm-node/locale/index.js +1 -1
- package/dist/types/builder/builder-rspack/index.d.ts +1 -2
- package/dist/types/builder/shared/builderPlugins/adapterHtml.d.ts +1 -1
- package/dist/types/defineConfig.d.ts +3 -2
- package/dist/types/index.d.ts +1 -0
- package/package.json +25 -24
- package/dist/cjs/utils/language.js +0 -31
- package/dist/esm/utils/language.js +0 -6
- package/dist/esm-node/utils/language.js +0 -8
- package/dist/types/utils/language.d.ts +0 -1
|
@@ -247,42 +247,27 @@ function applyBuilderPlugins(builder, options) {
|
|
|
247
247
|
}
|
|
248
248
|
function _applyBuilderPlugins() {
|
|
249
249
|
_applyBuilderPlugins = _asyncToGenerator(function(builder, options) {
|
|
250
|
-
var normalizedConfig,
|
|
250
|
+
var normalizedConfig, _normalizedConfig_tools, esbuildOptions, builderPluginEsbuild;
|
|
251
251
|
return __generator(this, function(_state) {
|
|
252
252
|
switch(_state.label){
|
|
253
253
|
case 0:
|
|
254
254
|
normalizedConfig = options.normalizedConfig;
|
|
255
|
-
if (!!normalizedConfig.output.disableNodePolyfill) return [
|
|
256
|
-
3,
|
|
257
|
-
2
|
|
258
|
-
];
|
|
259
|
-
return [
|
|
260
|
-
4,
|
|
261
|
-
import("@modern-js/builder-plugin-node-polyfill")
|
|
262
|
-
];
|
|
263
|
-
case 1:
|
|
264
|
-
builderPluginNodePolyfill = _state.sent().builderPluginNodePolyfill;
|
|
265
|
-
builder.addPlugins([
|
|
266
|
-
builderPluginNodePolyfill()
|
|
267
|
-
]);
|
|
268
|
-
_state.label = 2;
|
|
269
|
-
case 2:
|
|
270
255
|
if (!normalizedConfig.tools.esbuild) return [
|
|
271
256
|
3,
|
|
272
|
-
|
|
257
|
+
2
|
|
273
258
|
];
|
|
274
259
|
_normalizedConfig_tools = normalizedConfig.tools, esbuildOptions = _normalizedConfig_tools.esbuild;
|
|
275
260
|
return [
|
|
276
261
|
4,
|
|
277
262
|
import("@modern-js/builder-plugin-esbuild")
|
|
278
263
|
];
|
|
279
|
-
case
|
|
264
|
+
case 1:
|
|
280
265
|
builderPluginEsbuild = _state.sent().builderPluginEsbuild;
|
|
281
266
|
builder.addPlugins([
|
|
282
267
|
builderPluginEsbuild(esbuildOptions)
|
|
283
268
|
]);
|
|
284
|
-
_state.label =
|
|
285
|
-
case
|
|
269
|
+
_state.label = 2;
|
|
270
|
+
case 2:
|
|
286
271
|
builder.addPlugins([
|
|
287
272
|
builderPluginCompatModern(options)
|
|
288
273
|
]);
|
|
@@ -175,7 +175,7 @@ function applyBuilderPlugins(builder, options) {
|
|
|
175
175
|
}
|
|
176
176
|
function _applyBuilderPlugins() {
|
|
177
177
|
_applyBuilderPlugins = _asyncToGenerator(function(builder, options) {
|
|
178
|
-
var _ref, builderPluginAdapterBasic, builderPluginAdapterHtml, builderPluginAdapterSSR;
|
|
178
|
+
var _ref, builderPluginAdapterBasic, builderPluginAdapterHtml, builderPluginAdapterSSR, normalizedConfig, builderPluginNodePolyfill;
|
|
179
179
|
return __generator(this, function(_state) {
|
|
180
180
|
switch(_state.label){
|
|
181
181
|
case 0:
|
|
@@ -190,6 +190,22 @@ function _applyBuilderPlugins() {
|
|
|
190
190
|
builderPluginAdapterSSR(options),
|
|
191
191
|
builderPluginAdapterHtml(options)
|
|
192
192
|
]);
|
|
193
|
+
normalizedConfig = options.normalizedConfig;
|
|
194
|
+
if (!!normalizedConfig.output.disableNodePolyfill) return [
|
|
195
|
+
3,
|
|
196
|
+
3
|
|
197
|
+
];
|
|
198
|
+
return [
|
|
199
|
+
4,
|
|
200
|
+
import("@modern-js/builder-plugin-node-polyfill")
|
|
201
|
+
];
|
|
202
|
+
case 2:
|
|
203
|
+
builderPluginNodePolyfill = _state.sent().builderPluginNodePolyfill;
|
|
204
|
+
builder.addPlugins([
|
|
205
|
+
builderPluginNodePolyfill()
|
|
206
|
+
]);
|
|
207
|
+
_state.label = 3;
|
|
208
|
+
case 3:
|
|
193
209
|
return [
|
|
194
210
|
2
|
|
195
211
|
];
|
|
@@ -1,3 +1,32 @@
|
|
|
1
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
2
|
+
try {
|
|
3
|
+
var info = gen[key](arg);
|
|
4
|
+
var value = info.value;
|
|
5
|
+
} catch (error) {
|
|
6
|
+
reject(error);
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
if (info.done) {
|
|
10
|
+
resolve(value);
|
|
11
|
+
} else {
|
|
12
|
+
Promise.resolve(value).then(_next, _throw);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function _asyncToGenerator(fn) {
|
|
16
|
+
return function() {
|
|
17
|
+
var self = this, args = arguments;
|
|
18
|
+
return new Promise(function(resolve, reject) {
|
|
19
|
+
var gen = fn.apply(self, args);
|
|
20
|
+
function _next(value) {
|
|
21
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
22
|
+
}
|
|
23
|
+
function _throw(err) {
|
|
24
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
25
|
+
}
|
|
26
|
+
_next(undefined);
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
}
|
|
1
30
|
function _defineProperty(obj, key, value) {
|
|
2
31
|
if (key in obj) {
|
|
3
32
|
Object.defineProperty(obj, key, {
|
|
@@ -50,7 +79,103 @@ function _objectSpreadProps(target, source) {
|
|
|
50
79
|
}
|
|
51
80
|
return target;
|
|
52
81
|
}
|
|
53
|
-
|
|
82
|
+
var __generator = this && this.__generator || function(thisArg, body) {
|
|
83
|
+
var f, y, t, g, _ = {
|
|
84
|
+
label: 0,
|
|
85
|
+
sent: function() {
|
|
86
|
+
if (t[0] & 1) throw t[1];
|
|
87
|
+
return t[1];
|
|
88
|
+
},
|
|
89
|
+
trys: [],
|
|
90
|
+
ops: []
|
|
91
|
+
};
|
|
92
|
+
return(g = {
|
|
93
|
+
next: verb(0),
|
|
94
|
+
"throw": verb(1),
|
|
95
|
+
"return": verb(2)
|
|
96
|
+
}, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
97
|
+
return this;
|
|
98
|
+
}), g);
|
|
99
|
+
function verb(n) {
|
|
100
|
+
return function(v) {
|
|
101
|
+
return step([
|
|
102
|
+
n,
|
|
103
|
+
v
|
|
104
|
+
]);
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
function step(op) {
|
|
108
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
109
|
+
while(_)try {
|
|
110
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
111
|
+
if (y = 0, t) op = [
|
|
112
|
+
op[0] & 2,
|
|
113
|
+
t.value
|
|
114
|
+
];
|
|
115
|
+
switch(op[0]){
|
|
116
|
+
case 0:
|
|
117
|
+
case 1:
|
|
118
|
+
t = op;
|
|
119
|
+
break;
|
|
120
|
+
case 4:
|
|
121
|
+
_.label++;
|
|
122
|
+
return {
|
|
123
|
+
value: op[1],
|
|
124
|
+
done: false
|
|
125
|
+
};
|
|
126
|
+
case 5:
|
|
127
|
+
_.label++;
|
|
128
|
+
y = op[1];
|
|
129
|
+
op = [
|
|
130
|
+
0
|
|
131
|
+
];
|
|
132
|
+
continue;
|
|
133
|
+
case 7:
|
|
134
|
+
op = _.ops.pop();
|
|
135
|
+
_.trys.pop();
|
|
136
|
+
continue;
|
|
137
|
+
default:
|
|
138
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
139
|
+
_ = 0;
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
143
|
+
_.label = op[1];
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
147
|
+
_.label = t[1];
|
|
148
|
+
t = op;
|
|
149
|
+
break;
|
|
150
|
+
}
|
|
151
|
+
if (t && _.label < t[2]) {
|
|
152
|
+
_.label = t[2];
|
|
153
|
+
_.ops.push(op);
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
if (t[2]) _.ops.pop();
|
|
157
|
+
_.trys.pop();
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
op = body.call(thisArg, _);
|
|
161
|
+
} catch (e) {
|
|
162
|
+
op = [
|
|
163
|
+
6,
|
|
164
|
+
e
|
|
165
|
+
];
|
|
166
|
+
y = 0;
|
|
167
|
+
} finally{
|
|
168
|
+
f = t = 0;
|
|
169
|
+
}
|
|
170
|
+
if (op[0] & 5) throw op[1];
|
|
171
|
+
return {
|
|
172
|
+
value: op[0] ? op[1] : void 0,
|
|
173
|
+
done: true
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
import { createVirtualModule } from "@modern-js/builder-shared";
|
|
178
|
+
import { getEntryOptions, removeTailSlash } from "@modern-js/utils";
|
|
54
179
|
import { template as lodashTemplate } from "@modern-js/utils/lodash";
|
|
55
180
|
import { BottomTemplatePlugin } from "../bundlerPlugins";
|
|
56
181
|
function isHtmlEnabled(config, target) {
|
|
@@ -59,24 +184,101 @@ function isHtmlEnabled(config, target) {
|
|
|
59
184
|
}
|
|
60
185
|
var builderPluginAdapterHtml = function(options) {
|
|
61
186
|
return {
|
|
62
|
-
name: "builder-plugin-
|
|
187
|
+
name: "builder-plugin-adapter-modern-html",
|
|
63
188
|
setup: function setup(api) {
|
|
64
|
-
api.modifyBundlerChain(function(
|
|
65
|
-
var
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
189
|
+
api.modifyBundlerChain(function() {
|
|
190
|
+
var _ref = _asyncToGenerator(function(chain, param) {
|
|
191
|
+
var CHAIN_ID, target, HtmlBundlerPlugin, builderConfig;
|
|
192
|
+
return __generator(this, function(_state) {
|
|
193
|
+
switch(_state.label){
|
|
194
|
+
case 0:
|
|
195
|
+
CHAIN_ID = param.CHAIN_ID, target = param.target, HtmlBundlerPlugin = param.HtmlPlugin;
|
|
196
|
+
builderConfig = api.getNormalizedConfig();
|
|
197
|
+
if (!isHtmlEnabled(builderConfig, target)) return [
|
|
198
|
+
3,
|
|
199
|
+
2
|
|
200
|
+
];
|
|
201
|
+
applyBottomHtmlPlugin({
|
|
202
|
+
api: api,
|
|
203
|
+
options: options,
|
|
204
|
+
chain: chain,
|
|
205
|
+
CHAIN_ID: CHAIN_ID,
|
|
206
|
+
HtmlBundlerPlugin: HtmlBundlerPlugin
|
|
207
|
+
});
|
|
208
|
+
return [
|
|
209
|
+
4,
|
|
210
|
+
injectAssetPrefix({
|
|
211
|
+
api: api,
|
|
212
|
+
chain: chain
|
|
213
|
+
})
|
|
214
|
+
];
|
|
215
|
+
case 1:
|
|
216
|
+
_state.sent();
|
|
217
|
+
_state.label = 2;
|
|
218
|
+
case 2:
|
|
219
|
+
return [
|
|
220
|
+
2
|
|
221
|
+
];
|
|
222
|
+
}
|
|
74
223
|
});
|
|
75
|
-
}
|
|
76
|
-
|
|
224
|
+
});
|
|
225
|
+
return function(chain, _) {
|
|
226
|
+
return _ref.apply(this, arguments);
|
|
227
|
+
};
|
|
228
|
+
}());
|
|
77
229
|
}
|
|
78
230
|
};
|
|
79
231
|
};
|
|
232
|
+
function injectAssetPrefix(_) {
|
|
233
|
+
return _injectAssetPrefix.apply(this, arguments);
|
|
234
|
+
}
|
|
235
|
+
function _injectAssetPrefix() {
|
|
236
|
+
_injectAssetPrefix = _asyncToGenerator(function(param) {
|
|
237
|
+
var api, chain, entries, entryNames, assetPrefix, code, isRspack, fileName, _ref, RspackVirtualModulePlugin;
|
|
238
|
+
return __generator(this, function(_state) {
|
|
239
|
+
switch(_state.label){
|
|
240
|
+
case 0:
|
|
241
|
+
api = param.api, chain = param.chain;
|
|
242
|
+
entries = chain.entryPoints.entries() || {};
|
|
243
|
+
entryNames = Object.keys(entries);
|
|
244
|
+
assetPrefix = removeTailSlash(chain.output.get("publicPath") || "");
|
|
245
|
+
code = "window.__assetPrefix__ = '".concat(assetPrefix, "';");
|
|
246
|
+
isRspack = api.context.bundlerType === "rspack";
|
|
247
|
+
if (!isRspack) return [
|
|
248
|
+
3,
|
|
249
|
+
2
|
|
250
|
+
];
|
|
251
|
+
fileName = "rspack-asset-prefix";
|
|
252
|
+
return [
|
|
253
|
+
4,
|
|
254
|
+
import("rspack-plugin-virtual-module")
|
|
255
|
+
];
|
|
256
|
+
case 1:
|
|
257
|
+
_ref = _state.sent(), RspackVirtualModulePlugin = _ref.default;
|
|
258
|
+
entryNames.forEach(function(entryName) {
|
|
259
|
+
entries[entryName].prepend(fileName);
|
|
260
|
+
chain.plugin("rspack-asset-prefix").use(RspackVirtualModulePlugin, [
|
|
261
|
+
_defineProperty({}, fileName, code)
|
|
262
|
+
]);
|
|
263
|
+
});
|
|
264
|
+
return [
|
|
265
|
+
3,
|
|
266
|
+
3
|
|
267
|
+
];
|
|
268
|
+
case 2:
|
|
269
|
+
entryNames.forEach(function(entryName) {
|
|
270
|
+
entries[entryName].prepend(createVirtualModule(code));
|
|
271
|
+
});
|
|
272
|
+
_state.label = 3;
|
|
273
|
+
case 3:
|
|
274
|
+
return [
|
|
275
|
+
2
|
|
276
|
+
];
|
|
277
|
+
}
|
|
278
|
+
});
|
|
279
|
+
});
|
|
280
|
+
return _injectAssetPrefix.apply(this, arguments);
|
|
281
|
+
}
|
|
80
282
|
function applyBottomHtmlPlugin(param) {
|
|
81
283
|
var api = param.api, chain = param.chain, options = param.options, CHAIN_ID = param.CHAIN_ID, HtmlBundlerPlugin = param.HtmlBundlerPlugin;
|
|
82
284
|
var modernConfig = options.normalizedConfig, appContext = options.appContext;
|
|
@@ -122,6 +122,7 @@ var __generator = this && this.__generator || function(thisArg, body) {
|
|
|
122
122
|
};
|
|
123
123
|
}
|
|
124
124
|
};
|
|
125
|
+
import * as path from "path";
|
|
125
126
|
import { mergeBuilderConfig } from "@modern-js/builder-shared";
|
|
126
127
|
import { isSSR, fs } from "@modern-js/utils";
|
|
127
128
|
import { HtmlAsyncChunkPlugin, RouterPlugin } from "../bundlerPlugins";
|
|
@@ -162,6 +163,7 @@ var builderPluginAdapterSSR = function(options) {
|
|
|
162
163
|
];
|
|
163
164
|
case 1:
|
|
164
165
|
_state.sent();
|
|
166
|
+
applySSRDataLoader(chain, options);
|
|
165
167
|
_state.label = 2;
|
|
166
168
|
case 2:
|
|
167
169
|
if ([
|
|
@@ -354,4 +356,12 @@ function _applySSRLoaderEntry() {
|
|
|
354
356
|
});
|
|
355
357
|
return _applySSRLoaderEntry.apply(this, arguments);
|
|
356
358
|
}
|
|
359
|
+
function applySSRDataLoader(chain, options) {
|
|
360
|
+
var normalizedConfig = options.normalizedConfig, appContext = options.appContext;
|
|
361
|
+
var appDirectory = appContext.appDirectory;
|
|
362
|
+
var _normalizedConfig_source = normalizedConfig.source, _normalizedConfig_source_entriesDir = _normalizedConfig_source.entriesDir, entriesDir = _normalizedConfig_source_entriesDir === void 0 ? "./src" : _normalizedConfig_source_entriesDir;
|
|
363
|
+
var absolutePath = path.resolve(appDirectory, entriesDir);
|
|
364
|
+
var reg = new RegExp("".concat(absolutePath, ".*\\.loader\\.[t|j]s$"));
|
|
365
|
+
chain.module.rule("ssr-data-loader").test(reg).use("data-loader").loader(require.resolve("@modern-js/plugin-data-loader/loader")).end();
|
|
366
|
+
}
|
|
357
367
|
export { builderPluginAdapterSSR };
|
|
@@ -7,7 +7,7 @@ function transformNormalizedConfig(config) {
|
|
|
7
7
|
var output = createOutputConfig(config);
|
|
8
8
|
var source = createSourceConfig(config);
|
|
9
9
|
var tools = createToolsConfig(config);
|
|
10
|
-
var bff = config.bff, dev = config.dev, deploy = config.deploy, runtime = config.runtime, runtimeByEntries = config.runtimeByEntries, server = config.server, cliOptions = config.cliOptions, plugins = config.plugins, testing = config.testing;
|
|
10
|
+
var bff = config.bff, dev = config.dev, deploy = config.deploy, runtime = config.runtime, runtimeByEntries = config.runtimeByEntries, server = config.server, cliOptions = config.cliOptions, plugins = config.plugins, testing = config.testing, autoLoadPlugins = config.autoLoadPlugins;
|
|
11
11
|
return {
|
|
12
12
|
source: source,
|
|
13
13
|
html: html,
|
|
@@ -26,7 +26,7 @@ function transformNormalizedConfig(config) {
|
|
|
26
26
|
security: {},
|
|
27
27
|
_raw: {},
|
|
28
28
|
experiments: {},
|
|
29
|
-
autoLoadPlugins:
|
|
29
|
+
autoLoadPlugins: autoLoadPlugins,
|
|
30
30
|
performance: {
|
|
31
31
|
removeMomentLocale: true
|
|
32
32
|
}
|
package/dist/esm/defineConfig.js
CHANGED
|
@@ -53,9 +53,11 @@ function _objectSpreadProps(target, source) {
|
|
|
53
53
|
var defineConfig = function(config) {
|
|
54
54
|
return config;
|
|
55
55
|
};
|
|
56
|
+
var _config_autoLoadPlugins;
|
|
56
57
|
var defineLegacyConfig = function(config) {
|
|
57
58
|
return _objectSpreadProps(_objectSpread({}, config), {
|
|
58
|
-
legacy: true
|
|
59
|
+
legacy: true,
|
|
60
|
+
autoLoadPlugins: (_config_autoLoadPlugins = config.autoLoadPlugins) !== null && _config_autoLoadPlugins !== void 0 ? _config_autoLoadPlugins : true
|
|
59
61
|
});
|
|
60
62
|
};
|
|
61
63
|
export { defineConfig, defineLegacyConfig };
|
package/dist/esm/index.js
CHANGED
|
@@ -178,13 +178,14 @@ import path from "path";
|
|
|
178
178
|
import lintPlugin from "@modern-js/plugin-lint";
|
|
179
179
|
import { cleanRequireCache, emptyDir, Import, getCommand } from "@modern-js/utils";
|
|
180
180
|
import { castArray } from "@modern-js/utils/lodash";
|
|
181
|
+
import { getLocaleLanguage } from "@modern-js/plugin-i18n/language-detector";
|
|
181
182
|
import analyzePlugin from "./analyze";
|
|
182
183
|
import initializePlugin from "./initialize";
|
|
183
184
|
import { hooks } from "./hooks";
|
|
184
185
|
import { i18n, localeKeys } from "./locale";
|
|
185
|
-
import { getLocaleLanguage } from "./utils/language";
|
|
186
186
|
import { restart } from "./utils/restart";
|
|
187
187
|
import { generateWatchFiles } from "./utils/generateWatchFiles";
|
|
188
|
+
import { mergeConfig } from "@modern-js/core";
|
|
188
189
|
export * from "./defineConfig";
|
|
189
190
|
export * from "./types";
|
|
190
191
|
var upgradeModel = Import.lazy("@modern-js/upgrade", require);
|
|
@@ -711,4 +712,4 @@ var src_default = function() {
|
|
|
711
712
|
}
|
|
712
713
|
};
|
|
713
714
|
};
|
|
714
|
-
export { buildCommand, src_default as default, devCommand };
|
|
715
|
+
export { buildCommand, src_default as default, devCommand, mergeConfig };
|
|
@@ -181,10 +181,21 @@ var initialize_default = function(param) {
|
|
|
181
181
|
var bundler = param.bundler;
|
|
182
182
|
return {
|
|
183
183
|
name: "@modern-js/plugin-initialize",
|
|
184
|
+
post: [
|
|
185
|
+
"@modern-js/plugin-ssr",
|
|
186
|
+
"@modern-js/plugin-document",
|
|
187
|
+
"@modern-js/plugin-state",
|
|
188
|
+
"@modern-js/plugin-router",
|
|
189
|
+
"@modern-js/plugin-router-v5",
|
|
190
|
+
"@modern-js/plugin-polyfill"
|
|
191
|
+
],
|
|
184
192
|
setup: function setup(api) {
|
|
185
193
|
var config = function() {
|
|
186
194
|
var appContext = api.useAppContext();
|
|
187
195
|
var userConfig = api.useConfigContext();
|
|
196
|
+
api.setAppContext(_objectSpreadProps(_objectSpread({}, appContext), {
|
|
197
|
+
bundlerType: bundler
|
|
198
|
+
}));
|
|
188
199
|
return checkIsLegacyConfig(userConfig) ? createLegacyDefaultConfig(appContext) : createDefaultConfig(appContext, bundler);
|
|
189
200
|
};
|
|
190
201
|
var validateSchema = function() {
|
|
@@ -198,7 +209,7 @@ var initialize_default = function(param) {
|
|
|
198
209
|
resolvedConfig: function resolvedConfig(param) {
|
|
199
210
|
var resolved = param.resolved;
|
|
200
211
|
return _asyncToGenerator(function() {
|
|
201
|
-
var _resolved_output_distPath, appContext, userConfig, port, normalizedConfig;
|
|
212
|
+
var _resolved_output_distPath, appContext, userConfig, port, normalizedConfig, _normalizedConfig_autoLoadPlugins;
|
|
202
213
|
return __generator(this, function(_state) {
|
|
203
214
|
switch(_state.label){
|
|
204
215
|
case 0:
|
|
@@ -220,7 +231,7 @@ var initialize_default = function(param) {
|
|
|
220
231
|
resolved.server = _objectSpreadProps(_objectSpread({}, normalizedConfig.server || {}), {
|
|
221
232
|
port: port
|
|
222
233
|
});
|
|
223
|
-
resolved.autoLoadPlugins = normalizedConfig.autoLoadPlugins
|
|
234
|
+
resolved.autoLoadPlugins = (_normalizedConfig_autoLoadPlugins = normalizedConfig.autoLoadPlugins) !== null && _normalizedConfig_autoLoadPlugins !== void 0 ? _normalizedConfig_autoLoadPlugins : false;
|
|
224
235
|
stabilizeConfig(resolved, normalizedConfig, [
|
|
225
236
|
"source",
|
|
226
237
|
"bff",
|
package/dist/esm/locale/index.js
CHANGED
|
@@ -68,9 +68,6 @@ const html = (partials) => `
|
|
|
68
68
|
|
|
69
69
|
${partials.top.join("\n")}
|
|
70
70
|
|
|
71
|
-
<script>
|
|
72
|
-
window.__assetPrefix__ = '<%= assetPrefix %>';
|
|
73
|
-
</script>
|
|
74
71
|
${partials.head.join("\n")}
|
|
75
72
|
|
|
76
73
|
</head>
|
|
@@ -168,13 +165,10 @@ const fileSystemRoutes = async ({
|
|
|
168
165
|
if (!ssrMode) {
|
|
169
166
|
return "";
|
|
170
167
|
}
|
|
171
|
-
let dataLoaderPath = require.resolve("@modern-js/plugin-data-loader/loader");
|
|
172
168
|
if (nestedRoutesEntry) {
|
|
173
|
-
|
|
174
|
-
loadersMapFile
|
|
175
|
-
)}&loaderId=${loaderId}!`;
|
|
169
|
+
return `?mapFile=${slash(loadersMapFile)}&loaderId=${loaderId}`;
|
|
176
170
|
}
|
|
177
|
-
return
|
|
171
|
+
return "";
|
|
178
172
|
};
|
|
179
173
|
const traverseRouteTree = (route) => {
|
|
180
174
|
var _a;
|
|
@@ -292,14 +286,14 @@ const fileSystemRoutes = async ({
|
|
|
292
286
|
let importLoadersCode = "";
|
|
293
287
|
for (const [key, loaderInfo] of Object.entries(loadersMap)) {
|
|
294
288
|
if (loaderInfo.inline) {
|
|
295
|
-
importLoadersCode += `import { loader as ${key} } from "${
|
|
296
|
-
|
|
297
|
-
)}${
|
|
289
|
+
importLoadersCode += `import { loader as ${key} } from "${slash(
|
|
290
|
+
loaderInfo.filePath
|
|
291
|
+
)}${getDataLoaderPath(key)}";
|
|
298
292
|
`;
|
|
299
293
|
} else {
|
|
300
|
-
importLoadersCode += `import ${key} from "${
|
|
301
|
-
|
|
302
|
-
)}${
|
|
294
|
+
importLoadersCode += `import ${key} from "${slash(
|
|
295
|
+
loaderInfo.filePath
|
|
296
|
+
)}${getDataLoaderPath(key)}";
|
|
303
297
|
`;
|
|
304
298
|
}
|
|
305
299
|
}
|
|
@@ -1,18 +1,7 @@
|
|
|
1
1
|
import { builderRspackProvider } from "@modern-js/builder-rspack-provider";
|
|
2
2
|
import { generateBuilder } from "../generator";
|
|
3
3
|
function createRspackBuilderForModern(options) {
|
|
4
|
-
return generateBuilder(options, builderRspackProvider
|
|
5
|
-
async modifyBuilderInstance(builder) {
|
|
6
|
-
applyBuilderPlugins(builder, options);
|
|
7
|
-
}
|
|
8
|
-
});
|
|
9
|
-
}
|
|
10
|
-
async function applyBuilderPlugins(builder, options) {
|
|
11
|
-
const { normalizedConfig } = options;
|
|
12
|
-
if (!normalizedConfig.output.disableNodePolyfill) {
|
|
13
|
-
const { builderPluginNodePolyfill } = await import("@modern-js/builder-plugin-node-polyfill");
|
|
14
|
-
builder.addPlugins([builderPluginNodePolyfill()]);
|
|
15
|
-
}
|
|
4
|
+
return generateBuilder(options, builderRspackProvider);
|
|
16
5
|
}
|
|
17
6
|
export {
|
|
18
7
|
createRspackBuilderForModern
|
|
@@ -29,10 +29,6 @@ function modifyOutputConfig(config, appContext) {
|
|
|
29
29
|
}
|
|
30
30
|
async function applyBuilderPlugins(builder, options) {
|
|
31
31
|
const { normalizedConfig } = options;
|
|
32
|
-
if (!normalizedConfig.output.disableNodePolyfill) {
|
|
33
|
-
const { builderPluginNodePolyfill } = await import("@modern-js/builder-plugin-node-polyfill");
|
|
34
|
-
builder.addPlugins([builderPluginNodePolyfill()]);
|
|
35
|
-
}
|
|
36
32
|
if (normalizedConfig.tools.esbuild) {
|
|
37
33
|
const { esbuild: esbuildOptions } = normalizedConfig.tools;
|
|
38
34
|
const { builderPluginEsbuild } = await import("@modern-js/builder-plugin-esbuild");
|
|
@@ -31,6 +31,11 @@ async function applyBuilderPlugins(builder, options) {
|
|
|
31
31
|
builderPluginAdapterSSR(options),
|
|
32
32
|
builderPluginAdapterHtml(options)
|
|
33
33
|
]);
|
|
34
|
+
const { normalizedConfig } = options;
|
|
35
|
+
if (!normalizedConfig.output.disableNodePolyfill) {
|
|
36
|
+
const { builderPluginNodePolyfill } = await import("@modern-js/builder-plugin-node-polyfill");
|
|
37
|
+
builder.addPlugins([builderPluginNodePolyfill()]);
|
|
38
|
+
}
|
|
34
39
|
}
|
|
35
40
|
export {
|
|
36
41
|
generateBuilder
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
createVirtualModule
|
|
3
|
+
} from "@modern-js/builder-shared";
|
|
4
|
+
import {
|
|
5
|
+
getEntryOptions,
|
|
6
|
+
removeTailSlash
|
|
7
|
+
} from "@modern-js/utils";
|
|
2
8
|
import { template as lodashTemplate } from "@modern-js/utils/lodash";
|
|
3
9
|
import { BottomTemplatePlugin } from "../bundlerPlugins";
|
|
4
10
|
function isHtmlEnabled(config, target) {
|
|
@@ -6,10 +12,10 @@ function isHtmlEnabled(config, target) {
|
|
|
6
12
|
return ((_a = config.tools) == null ? void 0 : _a.htmlPlugin) !== false && target !== "node" && target !== "service-worker" && target !== "web-worker";
|
|
7
13
|
}
|
|
8
14
|
const builderPluginAdapterHtml = (options) => ({
|
|
9
|
-
name: "builder-plugin-
|
|
15
|
+
name: "builder-plugin-adapter-modern-html",
|
|
10
16
|
setup(api) {
|
|
11
17
|
api.modifyBundlerChain(
|
|
12
|
-
(chain, { CHAIN_ID, target, HtmlPlugin: HtmlBundlerPlugin }) => {
|
|
18
|
+
async (chain, { CHAIN_ID, target, HtmlPlugin: HtmlBundlerPlugin }) => {
|
|
13
19
|
const builderConfig = api.getNormalizedConfig();
|
|
14
20
|
if (isHtmlEnabled(builderConfig, target)) {
|
|
15
21
|
applyBottomHtmlPlugin({
|
|
@@ -19,11 +25,37 @@ const builderPluginAdapterHtml = (options) => ({
|
|
|
19
25
|
CHAIN_ID,
|
|
20
26
|
HtmlBundlerPlugin
|
|
21
27
|
});
|
|
28
|
+
await injectAssetPrefix({
|
|
29
|
+
api,
|
|
30
|
+
chain
|
|
31
|
+
});
|
|
22
32
|
}
|
|
23
33
|
}
|
|
24
34
|
);
|
|
25
35
|
}
|
|
26
36
|
});
|
|
37
|
+
async function injectAssetPrefix({
|
|
38
|
+
api,
|
|
39
|
+
chain
|
|
40
|
+
}) {
|
|
41
|
+
const entries = chain.entryPoints.entries() || {};
|
|
42
|
+
const entryNames = Object.keys(entries);
|
|
43
|
+
const assetPrefix = removeTailSlash(chain.output.get("publicPath") || "");
|
|
44
|
+
const code = `window.__assetPrefix__ = '${assetPrefix}';`;
|
|
45
|
+
const isRspack = api.context.bundlerType === "rspack";
|
|
46
|
+
if (isRspack) {
|
|
47
|
+
const fileName = "rspack-asset-prefix";
|
|
48
|
+
const { default: RspackVirtualModulePlugin } = await import("rspack-plugin-virtual-module");
|
|
49
|
+
entryNames.forEach((entryName) => {
|
|
50
|
+
entries[entryName].prepend(fileName);
|
|
51
|
+
chain.plugin("rspack-asset-prefix").use(RspackVirtualModulePlugin, [{ [fileName]: code }]);
|
|
52
|
+
});
|
|
53
|
+
} else {
|
|
54
|
+
entryNames.forEach((entryName) => {
|
|
55
|
+
entries[entryName].prepend(createVirtualModule(code));
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
27
59
|
function applyBottomHtmlPlugin({
|
|
28
60
|
api,
|
|
29
61
|
chain,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as path from "path";
|
|
1
2
|
import {
|
|
2
3
|
mergeBuilderConfig
|
|
3
4
|
} from "@modern-js/builder-shared";
|
|
@@ -26,6 +27,7 @@ const builderPluginAdapterSSR = (options) => ({
|
|
|
26
27
|
applyRouterPlugin(chain, options);
|
|
27
28
|
if (isSSR(normalizedConfig2)) {
|
|
28
29
|
await applySSRLoaderEntry(chain, options, isServer);
|
|
30
|
+
applySSRDataLoader(chain, options);
|
|
29
31
|
}
|
|
30
32
|
if (["node", "service-worker"].includes(target)) {
|
|
31
33
|
applyFilterEntriesBySSRConfig({
|
|
@@ -141,6 +143,14 @@ async function applySSRLoaderEntry(chain, optinos, isServer) {
|
|
|
141
143
|
})
|
|
142
144
|
);
|
|
143
145
|
}
|
|
146
|
+
function applySSRDataLoader(chain, options) {
|
|
147
|
+
const { normalizedConfig, appContext } = options;
|
|
148
|
+
const { appDirectory } = appContext;
|
|
149
|
+
const { entriesDir = "./src" } = normalizedConfig.source;
|
|
150
|
+
const absolutePath = path.resolve(appDirectory, entriesDir);
|
|
151
|
+
const reg = new RegExp(`${absolutePath}.*\\.loader\\.[t|j]s$`);
|
|
152
|
+
chain.module.rule("ssr-data-loader").test(reg).use("data-loader").loader(require.resolve("@modern-js/plugin-data-loader/loader")).end();
|
|
153
|
+
}
|
|
144
154
|
export {
|
|
145
155
|
builderPluginAdapterSSR
|
|
146
156
|
};
|
|
@@ -16,7 +16,8 @@ function transformNormalizedConfig(config) {
|
|
|
16
16
|
server,
|
|
17
17
|
cliOptions,
|
|
18
18
|
plugins,
|
|
19
|
-
testing
|
|
19
|
+
testing,
|
|
20
|
+
autoLoadPlugins
|
|
20
21
|
} = config;
|
|
21
22
|
return {
|
|
22
23
|
source,
|
|
@@ -36,7 +37,7 @@ function transformNormalizedConfig(config) {
|
|
|
36
37
|
security: {},
|
|
37
38
|
_raw: {},
|
|
38
39
|
experiments: {},
|
|
39
|
-
autoLoadPlugins
|
|
40
|
+
autoLoadPlugins,
|
|
40
41
|
performance: {
|
|
41
42
|
removeMomentLocale: true
|
|
42
43
|
}
|