@doracli/rspack 0.0.1 → 0.0.3
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/lib/cjs/index.js +954 -0
- package/lib/esm/index.js +928 -0
- package/lib/preset/html/dev-preset.html +24 -0
- package/lib/type/index.d.ts +129 -0
- package/package.json +24 -5
package/lib/cjs/index.js
ADDED
|
@@ -0,0 +1,954 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var lang = require('@cclr/lang');
|
|
4
|
+
var openBrowser = require('@dorabag/open-browser');
|
|
5
|
+
var helper = require('@doracli/helper');
|
|
6
|
+
var rspack = require('@rspack/core');
|
|
7
|
+
var devServer = require('@rspack/dev-server');
|
|
8
|
+
var filePro = require('@dorabag/file-pro');
|
|
9
|
+
var path = require('path');
|
|
10
|
+
var HtmlRspackPlugin = require('@rspack/plugin-html');
|
|
11
|
+
|
|
12
|
+
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
13
|
+
function _arrayLikeToArray(r, a) {
|
|
14
|
+
(null == a || a > r.length) && (a = r.length);
|
|
15
|
+
for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
|
|
16
|
+
return n;
|
|
17
|
+
}
|
|
18
|
+
function _arrayWithHoles(r) {
|
|
19
|
+
if (Array.isArray(r)) return r;
|
|
20
|
+
}
|
|
21
|
+
function _arrayWithoutHoles(r) {
|
|
22
|
+
if (Array.isArray(r)) return _arrayLikeToArray(r);
|
|
23
|
+
}
|
|
24
|
+
function _assertThisInitialized(e) {
|
|
25
|
+
if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
26
|
+
return e;
|
|
27
|
+
}
|
|
28
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) {
|
|
29
|
+
try {
|
|
30
|
+
var i = n[a](c),
|
|
31
|
+
u = i.value;
|
|
32
|
+
} catch (n) {
|
|
33
|
+
return void e(n);
|
|
34
|
+
}
|
|
35
|
+
i.done ? t(u) : Promise.resolve(u).then(r, o);
|
|
36
|
+
}
|
|
37
|
+
function _asyncToGenerator(n) {
|
|
38
|
+
return function () {
|
|
39
|
+
var t = this,
|
|
40
|
+
e = arguments;
|
|
41
|
+
return new Promise(function (r, o) {
|
|
42
|
+
var a = n.apply(t, e);
|
|
43
|
+
function _next(n) {
|
|
44
|
+
asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
|
|
45
|
+
}
|
|
46
|
+
function _throw(n) {
|
|
47
|
+
asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
|
|
48
|
+
}
|
|
49
|
+
_next(void 0);
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
function _callSuper(t, o, e) {
|
|
54
|
+
return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
|
|
55
|
+
}
|
|
56
|
+
function _classCallCheck(a, n) {
|
|
57
|
+
if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
|
|
58
|
+
}
|
|
59
|
+
function _defineProperties(e, r) {
|
|
60
|
+
for (var t = 0; t < r.length; t++) {
|
|
61
|
+
var o = r[t];
|
|
62
|
+
o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function _createClass(e, r, t) {
|
|
66
|
+
return r && _defineProperties(e.prototype, r), Object.defineProperty(e, "prototype", {
|
|
67
|
+
writable: false
|
|
68
|
+
}), e;
|
|
69
|
+
}
|
|
70
|
+
function _defineProperty(e, r, t) {
|
|
71
|
+
return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
72
|
+
value: t,
|
|
73
|
+
enumerable: true,
|
|
74
|
+
configurable: true,
|
|
75
|
+
writable: true
|
|
76
|
+
}) : e[r] = t, e;
|
|
77
|
+
}
|
|
78
|
+
function _getPrototypeOf(t) {
|
|
79
|
+
return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
|
|
80
|
+
return t.__proto__ || Object.getPrototypeOf(t);
|
|
81
|
+
}, _getPrototypeOf(t);
|
|
82
|
+
}
|
|
83
|
+
function _inherits(t, e) {
|
|
84
|
+
if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
|
|
85
|
+
t.prototype = Object.create(e && e.prototype, {
|
|
86
|
+
constructor: {
|
|
87
|
+
value: t,
|
|
88
|
+
writable: true,
|
|
89
|
+
configurable: true
|
|
90
|
+
}
|
|
91
|
+
}), Object.defineProperty(t, "prototype", {
|
|
92
|
+
writable: false
|
|
93
|
+
}), e && _setPrototypeOf(t, e);
|
|
94
|
+
}
|
|
95
|
+
function _isNativeReflectConstruct() {
|
|
96
|
+
try {
|
|
97
|
+
var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
|
|
98
|
+
} catch (t) {}
|
|
99
|
+
return (_isNativeReflectConstruct = function () {
|
|
100
|
+
return !!t;
|
|
101
|
+
})();
|
|
102
|
+
}
|
|
103
|
+
function _iterableToArray(r) {
|
|
104
|
+
if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
|
|
105
|
+
}
|
|
106
|
+
function _iterableToArrayLimit(r, l) {
|
|
107
|
+
var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
108
|
+
if (null != t) {
|
|
109
|
+
var e,
|
|
110
|
+
n,
|
|
111
|
+
i,
|
|
112
|
+
u,
|
|
113
|
+
a = [],
|
|
114
|
+
f = true,
|
|
115
|
+
o = false;
|
|
116
|
+
try {
|
|
117
|
+
if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
|
|
118
|
+
} catch (r) {
|
|
119
|
+
o = true, n = r;
|
|
120
|
+
} finally {
|
|
121
|
+
try {
|
|
122
|
+
if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
|
|
123
|
+
} finally {
|
|
124
|
+
if (o) throw n;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return a;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
function _nonIterableRest() {
|
|
131
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
132
|
+
}
|
|
133
|
+
function _nonIterableSpread() {
|
|
134
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
135
|
+
}
|
|
136
|
+
function ownKeys(e, r) {
|
|
137
|
+
var t = Object.keys(e);
|
|
138
|
+
if (Object.getOwnPropertySymbols) {
|
|
139
|
+
var o = Object.getOwnPropertySymbols(e);
|
|
140
|
+
r && (o = o.filter(function (r) {
|
|
141
|
+
return Object.getOwnPropertyDescriptor(e, r).enumerable;
|
|
142
|
+
})), t.push.apply(t, o);
|
|
143
|
+
}
|
|
144
|
+
return t;
|
|
145
|
+
}
|
|
146
|
+
function _objectSpread2(e) {
|
|
147
|
+
for (var r = 1; r < arguments.length; r++) {
|
|
148
|
+
var t = null != arguments[r] ? arguments[r] : {};
|
|
149
|
+
r % 2 ? ownKeys(Object(t), true).forEach(function (r) {
|
|
150
|
+
_defineProperty(e, r, t[r]);
|
|
151
|
+
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
|
|
152
|
+
Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
return e;
|
|
156
|
+
}
|
|
157
|
+
function _objectWithoutProperties(e, t) {
|
|
158
|
+
if (null == e) return {};
|
|
159
|
+
var o,
|
|
160
|
+
r,
|
|
161
|
+
i = _objectWithoutPropertiesLoose(e, t);
|
|
162
|
+
if (Object.getOwnPropertySymbols) {
|
|
163
|
+
var n = Object.getOwnPropertySymbols(e);
|
|
164
|
+
for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
|
|
165
|
+
}
|
|
166
|
+
return i;
|
|
167
|
+
}
|
|
168
|
+
function _objectWithoutPropertiesLoose(r, e) {
|
|
169
|
+
if (null == r) return {};
|
|
170
|
+
var t = {};
|
|
171
|
+
for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
|
|
172
|
+
if (-1 !== e.indexOf(n)) continue;
|
|
173
|
+
t[n] = r[n];
|
|
174
|
+
}
|
|
175
|
+
return t;
|
|
176
|
+
}
|
|
177
|
+
function _possibleConstructorReturn(t, e) {
|
|
178
|
+
if (e && ("object" == typeof e || "function" == typeof e)) return e;
|
|
179
|
+
if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
|
|
180
|
+
return _assertThisInitialized(t);
|
|
181
|
+
}
|
|
182
|
+
function _regenerator() {
|
|
183
|
+
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
184
|
+
var e,
|
|
185
|
+
t,
|
|
186
|
+
r = "function" == typeof Symbol ? Symbol : {},
|
|
187
|
+
n = r.iterator || "@@iterator",
|
|
188
|
+
o = r.toStringTag || "@@toStringTag";
|
|
189
|
+
function i(r, n, o, i) {
|
|
190
|
+
var c = n && n.prototype instanceof Generator ? n : Generator,
|
|
191
|
+
u = Object.create(c.prototype);
|
|
192
|
+
return _regeneratorDefine(u, "_invoke", function (r, n, o) {
|
|
193
|
+
var i,
|
|
194
|
+
c,
|
|
195
|
+
u,
|
|
196
|
+
f = 0,
|
|
197
|
+
p = o || [],
|
|
198
|
+
y = false,
|
|
199
|
+
G = {
|
|
200
|
+
p: 0,
|
|
201
|
+
n: 0,
|
|
202
|
+
v: e,
|
|
203
|
+
a: d,
|
|
204
|
+
f: d.bind(e, 4),
|
|
205
|
+
d: function (t, r) {
|
|
206
|
+
return i = t, c = 0, u = e, G.n = r, a;
|
|
207
|
+
}
|
|
208
|
+
};
|
|
209
|
+
function d(r, n) {
|
|
210
|
+
for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {
|
|
211
|
+
var o,
|
|
212
|
+
i = p[t],
|
|
213
|
+
d = G.p,
|
|
214
|
+
l = i[2];
|
|
215
|
+
r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));
|
|
216
|
+
}
|
|
217
|
+
if (o || r > 1) return a;
|
|
218
|
+
throw y = true, n;
|
|
219
|
+
}
|
|
220
|
+
return function (o, p, l) {
|
|
221
|
+
if (f > 1) throw TypeError("Generator is already running");
|
|
222
|
+
for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {
|
|
223
|
+
i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);
|
|
224
|
+
try {
|
|
225
|
+
if (f = 2, i) {
|
|
226
|
+
if (c || (o = "next"), t = i[o]) {
|
|
227
|
+
if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object");
|
|
228
|
+
if (!t.done) return t;
|
|
229
|
+
u = t.value, c < 2 && (c = 0);
|
|
230
|
+
} else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1);
|
|
231
|
+
i = e;
|
|
232
|
+
} else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;
|
|
233
|
+
} catch (t) {
|
|
234
|
+
i = e, c = 1, u = t;
|
|
235
|
+
} finally {
|
|
236
|
+
f = 1;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
return {
|
|
240
|
+
value: t,
|
|
241
|
+
done: y
|
|
242
|
+
};
|
|
243
|
+
};
|
|
244
|
+
}(r, o, i), true), u;
|
|
245
|
+
}
|
|
246
|
+
var a = {};
|
|
247
|
+
function Generator() {}
|
|
248
|
+
function GeneratorFunction() {}
|
|
249
|
+
function GeneratorFunctionPrototype() {}
|
|
250
|
+
t = Object.getPrototypeOf;
|
|
251
|
+
var c = [][n] ? t(t([][n]())) : (_regeneratorDefine(t = {}, n, function () {
|
|
252
|
+
return this;
|
|
253
|
+
}), t),
|
|
254
|
+
u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);
|
|
255
|
+
function f(e) {
|
|
256
|
+
return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e;
|
|
257
|
+
}
|
|
258
|
+
return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine(u), _regeneratorDefine(u, o, "Generator"), _regeneratorDefine(u, n, function () {
|
|
259
|
+
return this;
|
|
260
|
+
}), _regeneratorDefine(u, "toString", function () {
|
|
261
|
+
return "[object Generator]";
|
|
262
|
+
}), (_regenerator = function () {
|
|
263
|
+
return {
|
|
264
|
+
w: i,
|
|
265
|
+
m: f
|
|
266
|
+
};
|
|
267
|
+
})();
|
|
268
|
+
}
|
|
269
|
+
function _regeneratorDefine(e, r, n, t) {
|
|
270
|
+
var i = Object.defineProperty;
|
|
271
|
+
try {
|
|
272
|
+
i({}, "", {});
|
|
273
|
+
} catch (e) {
|
|
274
|
+
i = 0;
|
|
275
|
+
}
|
|
276
|
+
_regeneratorDefine = function (e, r, n, t) {
|
|
277
|
+
function o(r, n) {
|
|
278
|
+
_regeneratorDefine(e, r, function (e) {
|
|
279
|
+
return this._invoke(r, n, e);
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
r ? i ? i(e, r, {
|
|
283
|
+
value: n,
|
|
284
|
+
enumerable: !t,
|
|
285
|
+
configurable: !t,
|
|
286
|
+
writable: !t
|
|
287
|
+
}) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2));
|
|
288
|
+
}, _regeneratorDefine(e, r, n, t);
|
|
289
|
+
}
|
|
290
|
+
function _setPrototypeOf(t, e) {
|
|
291
|
+
return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
|
|
292
|
+
return t.__proto__ = e, t;
|
|
293
|
+
}, _setPrototypeOf(t, e);
|
|
294
|
+
}
|
|
295
|
+
function _slicedToArray(r, e) {
|
|
296
|
+
return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
|
|
297
|
+
}
|
|
298
|
+
function _toConsumableArray(r) {
|
|
299
|
+
return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();
|
|
300
|
+
}
|
|
301
|
+
function _toPrimitive(t, r) {
|
|
302
|
+
if ("object" != typeof t || !t) return t;
|
|
303
|
+
var e = t[Symbol.toPrimitive];
|
|
304
|
+
if (void 0 !== e) {
|
|
305
|
+
var i = e.call(t, r);
|
|
306
|
+
if ("object" != typeof i) return i;
|
|
307
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
308
|
+
}
|
|
309
|
+
return ("string" === r ? String : Number)(t);
|
|
310
|
+
}
|
|
311
|
+
function _toPropertyKey(t) {
|
|
312
|
+
var i = _toPrimitive(t, "string");
|
|
313
|
+
return "symbol" == typeof i ? i : i + "";
|
|
314
|
+
}
|
|
315
|
+
function _unsupportedIterableToArray(r, a) {
|
|
316
|
+
if (r) {
|
|
317
|
+
if ("string" == typeof r) return _arrayLikeToArray(r, a);
|
|
318
|
+
var t = {}.toString.call(r).slice(8, -1);
|
|
319
|
+
return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
var _excluded$3 = ["output"],
|
|
324
|
+
_excluded2 = ["output"],
|
|
325
|
+
_excluded3 = ["static", "headers"];
|
|
326
|
+
var mergeRspackConfigs = function mergeRspackConfigs(first, second) {
|
|
327
|
+
if (!first) return second;
|
|
328
|
+
if (!second) return first;
|
|
329
|
+
var firstOutput = first.output,
|
|
330
|
+
restFirst = _objectWithoutProperties(first, _excluded$3);
|
|
331
|
+
var secondOutput = second.output,
|
|
332
|
+
restSecond = _objectWithoutProperties(second, _excluded2);
|
|
333
|
+
var output = firstOutput || secondOutput;
|
|
334
|
+
if (lang.isObject(firstOutput) && lang.isObject(secondOutput)) {
|
|
335
|
+
output = _objectSpread2(_objectSpread2({}, firstOutput), secondOutput);
|
|
336
|
+
}
|
|
337
|
+
return _objectSpread2(_objectSpread2({
|
|
338
|
+
output: output
|
|
339
|
+
}, restFirst), restSecond);
|
|
340
|
+
};
|
|
341
|
+
|
|
342
|
+
/**
|
|
343
|
+
* 合并多个 devServer 配置
|
|
344
|
+
* @param configs
|
|
345
|
+
* @returns
|
|
346
|
+
*/
|
|
347
|
+
var mergeServerConfig = function mergeServerConfig() {
|
|
348
|
+
var result = {
|
|
349
|
+
static: [],
|
|
350
|
+
headers: {}
|
|
351
|
+
};
|
|
352
|
+
for (var _len = arguments.length, configs = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
353
|
+
configs[_key] = arguments[_key];
|
|
354
|
+
}
|
|
355
|
+
configs.forEach(function (config) {
|
|
356
|
+
if (!config) return;
|
|
357
|
+
var staticConfig = config.static,
|
|
358
|
+
headers = config.headers,
|
|
359
|
+
otherConfig = _objectWithoutProperties(config, _excluded3);
|
|
360
|
+
if (lang.isArray(result.static) && lang.isArray(staticConfig)) {
|
|
361
|
+
var _result$static;
|
|
362
|
+
(_result$static = result.static).push.apply(_result$static, _toConsumableArray(staticConfig));
|
|
363
|
+
}
|
|
364
|
+
if (headers) {
|
|
365
|
+
result.headers = _objectSpread2(_objectSpread2({}, result.headers), headers);
|
|
366
|
+
}
|
|
367
|
+
Object.assign(result, otherConfig);
|
|
368
|
+
});
|
|
369
|
+
return result;
|
|
370
|
+
};
|
|
371
|
+
|
|
372
|
+
var Compiler = /*#__PURE__*/function (_CompilerBase) {
|
|
373
|
+
function Compiler() {
|
|
374
|
+
var _this;
|
|
375
|
+
_classCallCheck(this, Compiler);
|
|
376
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
377
|
+
args[_key] = arguments[_key];
|
|
378
|
+
}
|
|
379
|
+
_this = _callSuper(this, Compiler, [].concat(args));
|
|
380
|
+
_defineProperty(_this, "context", /*#__PURE__*/function () {
|
|
381
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(rspackConfig) {
|
|
382
|
+
var compiler;
|
|
383
|
+
return _regenerator().w(function (_context2) {
|
|
384
|
+
while (1) switch (_context2.n) {
|
|
385
|
+
case 0:
|
|
386
|
+
compiler = rspack(mergeRspackConfigs(_this.initOptions, rspackConfig));
|
|
387
|
+
return _context2.a(2, {
|
|
388
|
+
rebuild: function rebuild() {
|
|
389
|
+
return new Promise(function (resolve, reject) {
|
|
390
|
+
compiler.run(function (err, stats) {
|
|
391
|
+
if (err) return reject(err);
|
|
392
|
+
resolve({
|
|
393
|
+
err: err,
|
|
394
|
+
stats: stats
|
|
395
|
+
});
|
|
396
|
+
});
|
|
397
|
+
});
|
|
398
|
+
},
|
|
399
|
+
cancel: function () {
|
|
400
|
+
var _cancel = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
401
|
+
return _regenerator().w(function (_context) {
|
|
402
|
+
while (1) switch (_context.n) {
|
|
403
|
+
case 0:
|
|
404
|
+
helper.cLog.warn('build', 'empty', 'Webpack compiler cancel is empty implementation.');
|
|
405
|
+
return _context.a(2);
|
|
406
|
+
}
|
|
407
|
+
}, _callee);
|
|
408
|
+
}));
|
|
409
|
+
function cancel() {
|
|
410
|
+
return _cancel.apply(this, arguments);
|
|
411
|
+
}
|
|
412
|
+
return cancel;
|
|
413
|
+
}()
|
|
414
|
+
});
|
|
415
|
+
}
|
|
416
|
+
}, _callee2);
|
|
417
|
+
}));
|
|
418
|
+
return function (_x) {
|
|
419
|
+
return _ref.apply(this, arguments);
|
|
420
|
+
};
|
|
421
|
+
}());
|
|
422
|
+
_defineProperty(_this, "inOutMap", /*#__PURE__*/function () {
|
|
423
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(inputOutputMap) {
|
|
424
|
+
var entry, output;
|
|
425
|
+
return _regenerator().w(function (_context3) {
|
|
426
|
+
while (1) switch (_context3.n) {
|
|
427
|
+
case 0:
|
|
428
|
+
// 构造多入口对象
|
|
429
|
+
entry = {};
|
|
430
|
+
Object.entries(inputOutputMap).forEach(function (_ref3) {
|
|
431
|
+
var _ref4 = _slicedToArray(_ref3, 2),
|
|
432
|
+
input = _ref4[0],
|
|
433
|
+
output = _ref4[1];
|
|
434
|
+
entry[output] = input;
|
|
435
|
+
});
|
|
436
|
+
output = {
|
|
437
|
+
path: 'dist',
|
|
438
|
+
filename: '[name].js'
|
|
439
|
+
};
|
|
440
|
+
return _context3.a(2, _this.build({
|
|
441
|
+
entry: entry,
|
|
442
|
+
output: output
|
|
443
|
+
}));
|
|
444
|
+
}
|
|
445
|
+
}, _callee3);
|
|
446
|
+
}));
|
|
447
|
+
return function (_x2) {
|
|
448
|
+
return _ref2.apply(this, arguments);
|
|
449
|
+
};
|
|
450
|
+
}());
|
|
451
|
+
_defineProperty(_this, "input", /*#__PURE__*/function () {
|
|
452
|
+
var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(input) {
|
|
453
|
+
return _regenerator().w(function (_context4) {
|
|
454
|
+
while (1) switch (_context4.n) {
|
|
455
|
+
case 0:
|
|
456
|
+
return _context4.a(2, {
|
|
457
|
+
output: function output(_output) {
|
|
458
|
+
return _this.build({
|
|
459
|
+
entry: input,
|
|
460
|
+
output: _output
|
|
461
|
+
});
|
|
462
|
+
}
|
|
463
|
+
});
|
|
464
|
+
}
|
|
465
|
+
}, _callee4);
|
|
466
|
+
}));
|
|
467
|
+
return function (_x3) {
|
|
468
|
+
return _ref5.apply(this, arguments);
|
|
469
|
+
};
|
|
470
|
+
}());
|
|
471
|
+
_defineProperty(_this, "build", /*#__PURE__*/function () {
|
|
472
|
+
var _ref6 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5(rspackConfig) {
|
|
473
|
+
return _regenerator().w(function (_context5) {
|
|
474
|
+
while (1) switch (_context5.n) {
|
|
475
|
+
case 0:
|
|
476
|
+
return _context5.a(2, new Promise(function (resolve, reject) {
|
|
477
|
+
rspack(mergeRspackConfigs(_this.initOptions, rspackConfig), function (err, stats) {
|
|
478
|
+
if (err) return reject(err);
|
|
479
|
+
resolve({
|
|
480
|
+
err: err,
|
|
481
|
+
stats: stats
|
|
482
|
+
});
|
|
483
|
+
});
|
|
484
|
+
}));
|
|
485
|
+
}
|
|
486
|
+
}, _callee5);
|
|
487
|
+
}));
|
|
488
|
+
return function (_x4) {
|
|
489
|
+
return _ref6.apply(this, arguments);
|
|
490
|
+
};
|
|
491
|
+
}());
|
|
492
|
+
_defineProperty(_this, "watch", function (watchOptions, rspackConfig) {
|
|
493
|
+
var cb = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : lang.noop;
|
|
494
|
+
var compiler = rspack(mergeRspackConfigs(_this.initOptions, rspackConfig));
|
|
495
|
+
return compiler.watch(watchOptions || {}, cb);
|
|
496
|
+
});
|
|
497
|
+
_defineProperty(_this, "server", /*#__PURE__*/function () {
|
|
498
|
+
var _ref7 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6(serverOptions, rspackConfig) {
|
|
499
|
+
var compiler, tempSrvConfig, open, port, host, devServer$1;
|
|
500
|
+
return _regenerator().w(function (_context6) {
|
|
501
|
+
while (1) switch (_context6.n) {
|
|
502
|
+
case 0:
|
|
503
|
+
compiler = rspack(mergeRspackConfigs(_this.initOptions, rspackConfig));
|
|
504
|
+
tempSrvConfig = mergeServerConfig(serverOptions);
|
|
505
|
+
open = tempSrvConfig.open, port = tempSrvConfig.port, host = tempSrvConfig.host;
|
|
506
|
+
devServer$1 = new devServer.RspackDevServer(mergeServerConfig(_objectSpread2(_objectSpread2({}, tempSrvConfig), {}, {
|
|
507
|
+
open: false
|
|
508
|
+
})), compiler);
|
|
509
|
+
_context6.n = 1;
|
|
510
|
+
return devServer$1.start();
|
|
511
|
+
case 1:
|
|
512
|
+
if (open) {
|
|
513
|
+
openBrowser("http://".concat(host, ":").concat(port));
|
|
514
|
+
}
|
|
515
|
+
return _context6.a(2, devServer$1);
|
|
516
|
+
}
|
|
517
|
+
}, _callee6);
|
|
518
|
+
}));
|
|
519
|
+
return function (_x5, _x6) {
|
|
520
|
+
return _ref7.apply(this, arguments);
|
|
521
|
+
};
|
|
522
|
+
}());
|
|
523
|
+
return _this;
|
|
524
|
+
}
|
|
525
|
+
_inherits(Compiler, _CompilerBase);
|
|
526
|
+
return _createClass(Compiler);
|
|
527
|
+
}(helper.CompilerBase);
|
|
528
|
+
|
|
529
|
+
var _excluded$2 = ["port"];
|
|
530
|
+
var getDevServer = function getDevServer(serviceConfig) {
|
|
531
|
+
var configPort = serviceConfig.port,
|
|
532
|
+
extServiceConfig = _objectWithoutProperties(serviceConfig, _excluded$2);
|
|
533
|
+
var host = '127.0.0.1';
|
|
534
|
+
return _objectSpread2(_objectSpread2({
|
|
535
|
+
host: host,
|
|
536
|
+
// 地址
|
|
537
|
+
open: false,
|
|
538
|
+
// 是否自动打开,关闭
|
|
539
|
+
setupExitSignals: true,
|
|
540
|
+
// 允许在 SIGINT 和 SIGTERM 信号时关闭开发服务器和退出进程。
|
|
541
|
+
compress: false,
|
|
542
|
+
// gzip压缩,开发环境不开启,提升热更新速度
|
|
543
|
+
hot: true,
|
|
544
|
+
// 开启热更新
|
|
545
|
+
historyApiFallback: true,
|
|
546
|
+
// 解决history路由404问题
|
|
547
|
+
// 托管静态资源public文件夹
|
|
548
|
+
static: [{
|
|
549
|
+
directory: filePro.resolveCwd('./public')
|
|
550
|
+
}, {
|
|
551
|
+
directory: filePro.resolveCwd('./dist')
|
|
552
|
+
}],
|
|
553
|
+
headers: {
|
|
554
|
+
'Access-Control-Allow-Origin': '*'
|
|
555
|
+
}
|
|
556
|
+
}, extServiceConfig), {}, {
|
|
557
|
+
port: configPort || '7777'
|
|
558
|
+
});
|
|
559
|
+
};
|
|
560
|
+
|
|
561
|
+
var getDevtool = function getDevtool(envParams, devtoolConfig) {
|
|
562
|
+
if (devtoolConfig) return devtoolConfig;
|
|
563
|
+
var action = envParams.action;
|
|
564
|
+
if (action === 'server') {
|
|
565
|
+
/**
|
|
566
|
+
* eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map
|
|
567
|
+
* 开发环境推荐:eval-cheap-module-source-map
|
|
568
|
+
* - 本地开发首次打包慢点没关系,因为 eval 缓存的原因, 热更新会很快
|
|
569
|
+
* - 开发中,我们每行代码不会写的太长,只需要定位到行就行,所以加上 cheap
|
|
570
|
+
* - 我们希望能够找到源代码的错误,而不是打包后的,所以需要加上 module
|
|
571
|
+
*/
|
|
572
|
+
return 'eval-cheap-module-source-map';
|
|
573
|
+
}
|
|
574
|
+
return 'source-map';
|
|
575
|
+
};
|
|
576
|
+
|
|
577
|
+
var scriptEntryList = ['index', 'src/index'];
|
|
578
|
+
var scriptFileTypeList = ['.ts', '.js', '.tsx', '.jsx'];
|
|
579
|
+
var htmlEntryList = ['index.html', 'public/index.html'];
|
|
580
|
+
|
|
581
|
+
var getEntry = function getEntry(params, input) {
|
|
582
|
+
if (input) return input;
|
|
583
|
+
var workRootDir = params.workRootDir;
|
|
584
|
+
var pList = scriptEntryList.reduce(function (pre, f) {
|
|
585
|
+
scriptFileTypeList.forEach(function (e) {
|
|
586
|
+
pre.push('./' + f + e);
|
|
587
|
+
});
|
|
588
|
+
return pre;
|
|
589
|
+
}, []);
|
|
590
|
+
var rightFile = filePro.lookupFile(pList, workRootDir);
|
|
591
|
+
if (!rightFile) {
|
|
592
|
+
helper.cLog.warn('dora-wr', 'getEntry', '需要有一个入口文件 index 或者 src/index');
|
|
593
|
+
process.exit();
|
|
594
|
+
}
|
|
595
|
+
return rightFile;
|
|
596
|
+
};
|
|
597
|
+
|
|
598
|
+
var getExternals = function getExternals(externals) {
|
|
599
|
+
if (externals) return externals;
|
|
600
|
+
return [];
|
|
601
|
+
};
|
|
602
|
+
|
|
603
|
+
var getMode = function getMode(envParams, modeConfig) {
|
|
604
|
+
if (modeConfig) return modeConfig;
|
|
605
|
+
var action = envParams.action;
|
|
606
|
+
return action === 'server' ? 'development' : 'production';
|
|
607
|
+
};
|
|
608
|
+
|
|
609
|
+
var cssLoader = filePro.requireResolve((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.js', document.baseURI).href)), 'css-loader');
|
|
610
|
+
var postcssLoader = filePro.requireResolve((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.js', document.baseURI).href)), 'postcss-loader');
|
|
611
|
+
var styleLoader = filePro.requireResolve((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.js', document.baseURI).href)), 'style-loader');
|
|
612
|
+
var lessLoader = filePro.requireResolve((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.js', document.baseURI).href)), 'less-loader');
|
|
613
|
+
var swcLoader = filePro.requireResolve((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.js', document.baseURI).href)), 'swc-loader');
|
|
614
|
+
var postcssPresetEnv = filePro.requireResolve((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.js', document.baseURI).href)), 'postcss-preset-env');
|
|
615
|
+
|
|
616
|
+
var getCssBaseLoader = function getCssBaseLoader(envParams, options) {
|
|
617
|
+
var action = envParams.action;
|
|
618
|
+
var _ref = options || {},
|
|
619
|
+
postcssPluginExtra = _ref.postcssPluginExtra;
|
|
620
|
+
var baseCssLoaderList = [cssLoader, {
|
|
621
|
+
loader: postcssLoader,
|
|
622
|
+
options: {
|
|
623
|
+
postcssOptions: {
|
|
624
|
+
plugins: [[postcssPresetEnv]].concat(_toConsumableArray(postcssPluginExtra || []))
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
}];
|
|
628
|
+
|
|
629
|
+
// dev环境使用style-loader
|
|
630
|
+
if (action === 'server') {
|
|
631
|
+
baseCssLoaderList.unshift({
|
|
632
|
+
loader: styleLoader
|
|
633
|
+
});
|
|
634
|
+
} else {
|
|
635
|
+
baseCssLoaderList.unshift({
|
|
636
|
+
loader: rspack.CssExtractRspackPlugin.loader
|
|
637
|
+
});
|
|
638
|
+
}
|
|
639
|
+
return baseCssLoaderList;
|
|
640
|
+
};
|
|
641
|
+
|
|
642
|
+
var getReactModulePreset = function getReactModulePreset(envParams, options) {
|
|
643
|
+
var publicCss = getCssBaseLoader(envParams, options);
|
|
644
|
+
var module = {
|
|
645
|
+
rules: [{
|
|
646
|
+
oneOf: [{
|
|
647
|
+
test: /\.(js|jsx|ts|tsx)$/,
|
|
648
|
+
loader: 'swc-loader',
|
|
649
|
+
options: {
|
|
650
|
+
jsc: {
|
|
651
|
+
parser: {
|
|
652
|
+
syntax: 'typescript',
|
|
653
|
+
tsx: true // 支持 tsx/jsx
|
|
654
|
+
},
|
|
655
|
+
transform: {
|
|
656
|
+
react: {
|
|
657
|
+
runtime: 'automatic'
|
|
658
|
+
} // React 17+ 新 JSX
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
}, {
|
|
663
|
+
test: /\.css$/,
|
|
664
|
+
use: _toConsumableArray(publicCss)
|
|
665
|
+
}, {
|
|
666
|
+
test: /\.less$/,
|
|
667
|
+
use: [].concat(_toConsumableArray(publicCss), [lessLoader])
|
|
668
|
+
}, {
|
|
669
|
+
test: /\.(jpe?g|png|gif|svg)$/i,
|
|
670
|
+
type: 'asset',
|
|
671
|
+
// 一般会转换为 "asset/resource"
|
|
672
|
+
generator: {
|
|
673
|
+
filename: 'img/[name]_[hash:8][ext]' // 独立的配置
|
|
674
|
+
},
|
|
675
|
+
parser: {
|
|
676
|
+
dataUrlCondition: {
|
|
677
|
+
maxSize: 8 * 1024 // 8kb (低于8kb都会压缩成 base64)
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
},
|
|
681
|
+
// 字体文件
|
|
682
|
+
{
|
|
683
|
+
test: /\.(otf|eot|woff2?|ttf|svg)$/i,
|
|
684
|
+
type: 'asset',
|
|
685
|
+
// 一般会转换为 "asset/inline"
|
|
686
|
+
generator: {
|
|
687
|
+
filename: 'icon/[name]_[hash:8][ext]' // 独立的配置
|
|
688
|
+
},
|
|
689
|
+
parser: {
|
|
690
|
+
dataUrlCondition: {
|
|
691
|
+
maxSize: 2 * 1024 // 2kb (低于2kb都会压缩)
|
|
692
|
+
}
|
|
693
|
+
}
|
|
694
|
+
}]
|
|
695
|
+
}]
|
|
696
|
+
};
|
|
697
|
+
return module;
|
|
698
|
+
};
|
|
699
|
+
|
|
700
|
+
var getOptimization = function getOptimization(params) {
|
|
701
|
+
var minimize = params.minimize;
|
|
702
|
+
if (!minimize) {
|
|
703
|
+
return {
|
|
704
|
+
minimize: false
|
|
705
|
+
};
|
|
706
|
+
}
|
|
707
|
+
return {
|
|
708
|
+
minimize: minimize
|
|
709
|
+
};
|
|
710
|
+
};
|
|
711
|
+
|
|
712
|
+
var _excluded$1 = ["path", "filename"];
|
|
713
|
+
var getOutput = function getOutput(envParams, output) {
|
|
714
|
+
var workRootDir = envParams.workRootDir;
|
|
715
|
+
var _ref = output || {},
|
|
716
|
+
path$1 = _ref.path,
|
|
717
|
+
filename = _ref.filename,
|
|
718
|
+
extOutput = _objectWithoutProperties(_ref, _excluded$1);
|
|
719
|
+
return _objectSpread2({
|
|
720
|
+
filename: filename || 'js/[name].[contenthash].js',
|
|
721
|
+
path: path$1 && path.isAbsolute(path$1) ? path$1 : path.join(workRootDir, path$1 || 'dist'),
|
|
722
|
+
clean: true,
|
|
723
|
+
publicPath: '/'
|
|
724
|
+
}, extOutput);
|
|
725
|
+
};
|
|
726
|
+
|
|
727
|
+
var dirname = filePro.getDirname(({ url: (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.js', document.baseURI).href)) }));
|
|
728
|
+
var packageRootDir = filePro.getPackageRoot(dirname);
|
|
729
|
+
var cliNodeModulesDir = path.join(packageRootDir, 'node_modules');
|
|
730
|
+
var presetHtmlTemplate = path.join(packageRootDir, 'lib/preset/html/dev-preset.html');
|
|
731
|
+
|
|
732
|
+
var _excluded = ["minimize", "template"];
|
|
733
|
+
var getHtmlWebpackPlugin = function getHtmlWebpackPlugin(params) {
|
|
734
|
+
var minimize = params.minimize,
|
|
735
|
+
template = params.template,
|
|
736
|
+
extParams = _objectWithoutProperties(params, _excluded);
|
|
737
|
+
return new HtmlRspackPlugin.default(_objectSpread2({
|
|
738
|
+
title: 'rspack-react-ts',
|
|
739
|
+
filename: 'index.html',
|
|
740
|
+
// 复制 'index.html' 文件,并自动引入打包输出的所有资源(js/css)
|
|
741
|
+
template: template || presetHtmlTemplate,
|
|
742
|
+
inject: true,
|
|
743
|
+
// 自动注入静态资源
|
|
744
|
+
hash: true,
|
|
745
|
+
cache: false,
|
|
746
|
+
// 压缩html资源
|
|
747
|
+
minify: minimize ? {
|
|
748
|
+
removeAttributeQuotes: true,
|
|
749
|
+
collapseWhitespace: true,
|
|
750
|
+
//去空格
|
|
751
|
+
removeComments: true,
|
|
752
|
+
// 去注释
|
|
753
|
+
minifyJS: true,
|
|
754
|
+
// 在脚本元素和事件属性中缩小JavaScript(使用UglifyJS)
|
|
755
|
+
minifyCSS: true // 缩小CSS样式元素和样式属性
|
|
756
|
+
} : false
|
|
757
|
+
}, extParams));
|
|
758
|
+
};
|
|
759
|
+
|
|
760
|
+
function extractEntryFiles(entry) {
|
|
761
|
+
// 处理常见 entry 形式:string | string[] | { [name]: string | string[] | { import: ... } }
|
|
762
|
+
var files = [];
|
|
763
|
+
var _push = function push(v) {
|
|
764
|
+
if (!v) return;
|
|
765
|
+
if (typeof v === 'string') files.push(v);else if (Array.isArray(v)) v.forEach(_push);else if (typeof v === 'object') {
|
|
766
|
+
// 对象可能是 { import: '...' } 或 { import: ['...'] }
|
|
767
|
+
// 也可能是其它 webpack entry 描述符
|
|
768
|
+
// 尝试提取 import 字段
|
|
769
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
770
|
+
var obj = v;
|
|
771
|
+
if (obj.import) _push(obj.import);else {
|
|
772
|
+
// 可能是 nested object of entry points
|
|
773
|
+
Object.values(obj).forEach(_push);
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
};
|
|
777
|
+
_push(entry);
|
|
778
|
+
return files;
|
|
779
|
+
}
|
|
780
|
+
var TsconfigPlugin = /*#__PURE__*/function () {
|
|
781
|
+
function TsconfigPlugin(workRootDir) {
|
|
782
|
+
_classCallCheck(this, TsconfigPlugin);
|
|
783
|
+
_defineProperty(this, "workRootDir", void 0);
|
|
784
|
+
this.workRootDir = workRootDir;
|
|
785
|
+
}
|
|
786
|
+
return _createClass(TsconfigPlugin, [{
|
|
787
|
+
key: "apply",
|
|
788
|
+
value: function apply(compiler) {
|
|
789
|
+
var _this = this;
|
|
790
|
+
// 使用 beforeRun.tapPromise 以 async/await 方式在构建前完成 I/O
|
|
791
|
+
compiler.hooks.beforeRun.tapPromise('TsconfigPlugin', /*#__PURE__*/function () {
|
|
792
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(comp) {
|
|
793
|
+
var _ref2, entry, entryFiles, hasTs;
|
|
794
|
+
return _regenerator().w(function (_context) {
|
|
795
|
+
while (1) switch (_context.p = _context.n) {
|
|
796
|
+
case 0:
|
|
797
|
+
_context.p = 0;
|
|
798
|
+
entry = (_ref2 = comp.options && comp.options.entry) !== null && _ref2 !== void 0 ? _ref2 : {};
|
|
799
|
+
entryFiles = extractEntryFiles(entry); // 如果 entry 是函数/动态生成,entryFiles 可能为空,保守处理
|
|
800
|
+
hasTs = entryFiles.some(function (f) {
|
|
801
|
+
return /\.(ts|tsx)$/.test(path.extname(String(f)));
|
|
802
|
+
});
|
|
803
|
+
if (hasTs) {
|
|
804
|
+
_context.n = 1;
|
|
805
|
+
break;
|
|
806
|
+
}
|
|
807
|
+
return _context.a(2);
|
|
808
|
+
case 1:
|
|
809
|
+
_context.n = 2;
|
|
810
|
+
return helper.insertTsconfig(_this.workRootDir);
|
|
811
|
+
case 2:
|
|
812
|
+
_context.n = 4;
|
|
813
|
+
break;
|
|
814
|
+
case 3:
|
|
815
|
+
_context.p = 3;
|
|
816
|
+
_context.v;
|
|
817
|
+
helper.cLog.error('init', 'error', '自动注入 tsconfig.json 失败');
|
|
818
|
+
case 4:
|
|
819
|
+
return _context.a(2);
|
|
820
|
+
}
|
|
821
|
+
}, _callee, null, [[0, 3]]);
|
|
822
|
+
}));
|
|
823
|
+
return function (_x) {
|
|
824
|
+
return _ref.apply(this, arguments);
|
|
825
|
+
};
|
|
826
|
+
}());
|
|
827
|
+
}
|
|
828
|
+
}]);
|
|
829
|
+
}();
|
|
830
|
+
|
|
831
|
+
var getTsconfigPlugin = function getTsconfigPlugin(envParams) {
|
|
832
|
+
return new TsconfigPlugin(envParams.workRootDir);
|
|
833
|
+
};
|
|
834
|
+
|
|
835
|
+
var getReactPluginsPreset = function getReactPluginsPreset(envParams, options) {
|
|
836
|
+
var action = envParams.action;
|
|
837
|
+
var isDevelopment = action === 'server';
|
|
838
|
+
options.WebpackBundleAnalyzerOptions;
|
|
839
|
+
var HtmlWebpackPluginOptions = options.HtmlWebpackPluginOptions,
|
|
840
|
+
minimize = options.minimize;
|
|
841
|
+
|
|
842
|
+
// html入口文件路径
|
|
843
|
+
var rightFile = filePro.lookupFile(htmlEntryList);
|
|
844
|
+
if (!rightFile) {
|
|
845
|
+
helper.cLog.warn('init', 'not_found', '未找到 html 入口文件,将使用预设配置');
|
|
846
|
+
}
|
|
847
|
+
var plugins = [getTsconfigPlugin(envParams)];
|
|
848
|
+
if (action !== 'lib') {
|
|
849
|
+
plugins.push(getHtmlWebpackPlugin(_objectSpread2({
|
|
850
|
+
minimize: minimize,
|
|
851
|
+
template: rightFile || undefined
|
|
852
|
+
}, HtmlWebpackPluginOptions)));
|
|
853
|
+
}
|
|
854
|
+
if (!isDevelopment) {
|
|
855
|
+
plugins.push(new rspack.CssExtractRspackPlugin({
|
|
856
|
+
filename: 'css/main.[contenthash].css'
|
|
857
|
+
}));
|
|
858
|
+
}
|
|
859
|
+
|
|
860
|
+
// if (WebpackBundleAnalyzerOptions) {
|
|
861
|
+
// plugins.push(
|
|
862
|
+
// new WebpackBundleAnalyzer.BundleAnalyzerPlugin(
|
|
863
|
+
// WebpackBundleAnalyzerOptions
|
|
864
|
+
// )
|
|
865
|
+
// );
|
|
866
|
+
// }
|
|
867
|
+
|
|
868
|
+
return plugins.filter(Boolean);
|
|
869
|
+
};
|
|
870
|
+
|
|
871
|
+
/**
|
|
872
|
+
* 获取webpack的resolve配置
|
|
873
|
+
* @param userResolve
|
|
874
|
+
* @returns
|
|
875
|
+
*/
|
|
876
|
+
var getResolve = function getResolve(resolveConfig) {
|
|
877
|
+
var resolveObj = _objectSpread2({
|
|
878
|
+
extensions: ['.ts', '.tsx', '.js', '.jsx']
|
|
879
|
+
}, resolveConfig);
|
|
880
|
+
return resolveObj;
|
|
881
|
+
};
|
|
882
|
+
|
|
883
|
+
var getResolveLoader = function getResolveLoader() {
|
|
884
|
+
return {
|
|
885
|
+
modules: [cliNodeModulesDir],
|
|
886
|
+
extensions: ['.js', '.json'],
|
|
887
|
+
mainFields: ['loader', 'main']
|
|
888
|
+
};
|
|
889
|
+
};
|
|
890
|
+
|
|
891
|
+
var Ctx = /*#__PURE__*/function () {
|
|
892
|
+
function Ctx(configCtx) {
|
|
893
|
+
_classCallCheck(this, Ctx);
|
|
894
|
+
_defineProperty(this, "configCtx", void 0);
|
|
895
|
+
_defineProperty(this, "rspackConfig", {});
|
|
896
|
+
_defineProperty(this, "devServerConfig", {});
|
|
897
|
+
_defineProperty(this, "envParams", {
|
|
898
|
+
action: 'build',
|
|
899
|
+
workRootDir: filePro.getCwd()
|
|
900
|
+
});
|
|
901
|
+
this.configCtx = configCtx;
|
|
902
|
+
}
|
|
903
|
+
return _createClass(Ctx, [{
|
|
904
|
+
key: "updateEnvParams",
|
|
905
|
+
value: function updateEnvParams(argv) {
|
|
906
|
+
this.envParams = _objectSpread2(_objectSpread2({}, this.envParams), argv);
|
|
907
|
+
}
|
|
908
|
+
}, {
|
|
909
|
+
key: "updateRspackConfig",
|
|
910
|
+
value: function updateRspackConfig(config) {
|
|
911
|
+
this.rspackConfig = _objectSpread2(_objectSpread2({}, this.rspackConfig), config);
|
|
912
|
+
}
|
|
913
|
+
}, {
|
|
914
|
+
key: "updateDevServerConfig",
|
|
915
|
+
value: function updateDevServerConfig(config) {
|
|
916
|
+
this.devServerConfig = _objectSpread2(_objectSpread2({}, this.devServerConfig), config);
|
|
917
|
+
}
|
|
918
|
+
}, {
|
|
919
|
+
key: "getDoraConfig",
|
|
920
|
+
value: function getDoraConfig() {
|
|
921
|
+
return this.configCtx.getDoraConfig();
|
|
922
|
+
}
|
|
923
|
+
}, {
|
|
924
|
+
key: "geTDoraConfigRspack",
|
|
925
|
+
value: function geTDoraConfigRspack() {
|
|
926
|
+
return this.configCtx.getDoraConfig().rspackConfig || {};
|
|
927
|
+
}
|
|
928
|
+
}]);
|
|
929
|
+
}();
|
|
930
|
+
|
|
931
|
+
exports.Compiler = Compiler;
|
|
932
|
+
exports.Ctx = Ctx;
|
|
933
|
+
exports.cssLoader = cssLoader;
|
|
934
|
+
exports.getCssBaseLoader = getCssBaseLoader;
|
|
935
|
+
exports.getDevServer = getDevServer;
|
|
936
|
+
exports.getDevtool = getDevtool;
|
|
937
|
+
exports.getEntry = getEntry;
|
|
938
|
+
exports.getExternals = getExternals;
|
|
939
|
+
exports.getHtmlWebpackPlugin = getHtmlWebpackPlugin;
|
|
940
|
+
exports.getMode = getMode;
|
|
941
|
+
exports.getOptimization = getOptimization;
|
|
942
|
+
exports.getOutput = getOutput;
|
|
943
|
+
exports.getReactModulePreset = getReactModulePreset;
|
|
944
|
+
exports.getReactPluginsPreset = getReactPluginsPreset;
|
|
945
|
+
exports.getResolve = getResolve;
|
|
946
|
+
exports.getResolveLoader = getResolveLoader;
|
|
947
|
+
exports.getTsconfigPlugin = getTsconfigPlugin;
|
|
948
|
+
exports.lessLoader = lessLoader;
|
|
949
|
+
exports.mergeRspackConfigs = mergeRspackConfigs;
|
|
950
|
+
exports.mergeServerConfig = mergeServerConfig;
|
|
951
|
+
exports.postcssLoader = postcssLoader;
|
|
952
|
+
exports.postcssPresetEnv = postcssPresetEnv;
|
|
953
|
+
exports.styleLoader = styleLoader;
|
|
954
|
+
exports.swcLoader = swcLoader;
|