@unpackjs/core 1.7.5 → 1.7.7

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.
Files changed (116) hide show
  1. package/compiled/css-loader/index.js +180 -178
  2. package/compiled/less-loader/index.js +11 -11
  3. package/compiled/line-diff/index.js +4 -4
  4. package/compiled/line-diff/license +1 -1
  5. package/compiled/line-diff/package.json +1 -1
  6. package/compiled/portfinder/index.js +37 -37
  7. package/compiled/postcss-loader/index.js +261 -256
  8. package/compiled/sass-loader/index.js +24 -20
  9. package/compiled/sass-loader/package.json +1 -1
  10. package/compiled/semver/index.js +188 -170
  11. package/compiled/semver/package.json +1 -1
  12. package/compiled/style-loader/index.js +13 -13
  13. package/compiled/webpack-bundle-analyzer/index.js +198 -198
  14. package/compiled/webpack-merge/index.js +29 -29
  15. package/dist/bundler-config/chunkSplit.cjs +169 -156
  16. package/dist/bundler-config/chunkSplit.js +125 -134
  17. package/dist/bundler-config/css.cjs +181 -158
  18. package/dist/bundler-config/css.js +139 -151
  19. package/dist/bundler-config/experimentCss.cjs +203 -159
  20. package/dist/bundler-config/experimentCss.js +162 -152
  21. package/dist/bundler-config/helper.cjs +82 -78
  22. package/dist/bundler-config/helper.js +36 -55
  23. package/dist/bundler-config/index.cjs +260 -209
  24. package/dist/bundler-config/index.d.ts.map +1 -1
  25. package/dist/bundler-config/index.js +209 -182
  26. package/dist/bundler-config/jsMinify.cjs +114 -95
  27. package/dist/bundler-config/jsMinify.js +70 -73
  28. package/dist/colors.cjs +83 -56
  29. package/dist/colors.js +38 -37
  30. package/dist/config.cjs +107 -93
  31. package/dist/config.d.ts.map +1 -1
  32. package/dist/config.js +64 -70
  33. package/dist/constants.cjs +65 -62
  34. package/dist/constants.d.ts +1 -0
  35. package/dist/constants.d.ts.map +1 -1
  36. package/dist/constants.js +22 -38
  37. package/dist/createUnpack.cjs +111 -104
  38. package/dist/createUnpack.js +67 -82
  39. package/dist/global.cjs +36 -0
  40. package/dist/global.d.ts +2 -0
  41. package/dist/global.d.ts.map +1 -0
  42. package/dist/global.js +4 -0
  43. package/dist/index.cjs +174 -51
  44. package/dist/index.d.ts +2 -0
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +33 -15
  47. package/dist/lightningcss/loader.cjs +56 -53
  48. package/dist/lightningcss/loader.d.ts.map +1 -1
  49. package/dist/lightningcss/loader.js +25 -34
  50. package/dist/lightningcss/minimizer.cjs +90 -109
  51. package/dist/lightningcss/minimizer.d.ts.map +1 -1
  52. package/dist/lightningcss/minimizer.js +59 -87
  53. package/dist/logger.cjs +104 -98
  54. package/dist/logger.js +59 -76
  55. package/dist/openBrowser.cjs +104 -81
  56. package/dist/openBrowser.js +56 -52
  57. package/dist/plugin-progress/rspack.cjs +104 -79
  58. package/dist/plugin-progress/rspack.js +59 -57
  59. package/dist/plugin-progress/webpack.cjs +111 -89
  60. package/dist/plugin-progress/webpack.js +65 -67
  61. package/dist/plugin.cjs +38 -29
  62. package/dist/plugin.js +8 -17
  63. package/dist/prebundleDeps.cjs +327 -337
  64. package/dist/prebundleDeps.d.ts.map +1 -1
  65. package/dist/prebundleDeps.js +278 -324
  66. package/dist/progressBar.cjs +82 -65
  67. package/dist/progressBar.js +38 -43
  68. package/dist/reporter.cjs +149 -124
  69. package/dist/reporter.d.ts.map +1 -1
  70. package/dist/reporter.js +102 -102
  71. package/dist/run/build.cjs +68 -67
  72. package/dist/run/build.js +24 -45
  73. package/dist/run/dev.cjs +96 -83
  74. package/dist/run/dev.d.ts.map +1 -1
  75. package/dist/run/dev.js +50 -61
  76. package/dist/run/index.cjs +74 -21
  77. package/dist/run/index.js +2 -9
  78. package/dist/typed-css-modules/loader.cjs +179 -188
  79. package/dist/typed-css-modules/loader.js +118 -151
  80. package/dist/typed-css-modules/plugin.cjs +113 -88
  81. package/dist/typed-css-modules/plugin.js +68 -66
  82. package/dist/typed-css-modules/utils.cjs +43 -42
  83. package/dist/typed-css-modules/utils.js +13 -30
  84. package/dist/types/chunkSplit.cjs +19 -15
  85. package/dist/types/chunkSplit.d.ts +2 -10
  86. package/dist/types/chunkSplit.d.ts.map +1 -1
  87. package/dist/types/chunkSplit.js +2 -9
  88. package/dist/types/config.cjs +19 -15
  89. package/dist/types/config.js +2 -9
  90. package/dist/types/index.cjs +101 -27
  91. package/dist/types/index.js +2 -9
  92. package/dist/types/lightningcss.cjs +19 -15
  93. package/dist/types/lightningcss.js +2 -9
  94. package/dist/types/logger.cjs +43 -34
  95. package/dist/types/logger.js +13 -22
  96. package/dist/types/plugin.cjs +19 -15
  97. package/dist/types/plugin.js +2 -9
  98. package/dist/utils.cjs +280 -304
  99. package/dist/utils.js +195 -241
  100. package/dist/watchFiles.cjs +73 -0
  101. package/dist/watchFiles.d.ts +3 -0
  102. package/dist/watchFiles.d.ts.map +1 -0
  103. package/dist/watchFiles.js +27 -0
  104. package/package.json +18 -21
  105. package/compiled/commander/index.d.ts +0 -1047
  106. package/compiled/commander/index.js +0 -2428
  107. package/compiled/commander/license +0 -22
  108. package/compiled/commander/package.json +0 -1
  109. package/dist/bundleRequire.cjs +0 -200
  110. package/dist/bundleRequire.d.ts +0 -5
  111. package/dist/bundleRequire.d.ts.map +0 -1
  112. package/dist/bundleRequire.js +0 -173
  113. package/dist/lightningcss/cache.cjs +0 -36
  114. package/dist/lightningcss/cache.d.ts +0 -2
  115. package/dist/lightningcss/cache.d.ts.map +0 -1
  116. package/dist/lightningcss/cache.js +0 -22
@@ -1 +1 @@
1
- {"version":3,"file":"prebundleDeps.d.ts","sourceRoot":"","sources":["../src/prebundleDeps.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AA8N3C,eAAO,MAAM,aAAa,sBAEvB;IACD,YAAY,EAAE,YAAY,CAAA;CAC3B,KAAG,OAAO,CAAC,YAAY,CA2GvB,CAAA"}
1
+ {"version":3,"file":"prebundleDeps.d.ts","sourceRoot":"","sources":["../src/prebundleDeps.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AA4D3C,eAAO,MAAM,aAAa,sBAEvB;IACD,YAAY,EAAE,YAAY,CAAA;CAC3B,KAAG,OAAO,CAAC,YAAY,CA8QvB,CAAA"}
@@ -1,335 +1,289 @@
1
- import { createRequire } from 'node:module';
2
- var require = createRequire(import.meta['url']);
3
-
4
- import path from "path";
5
- import { fileURLToPath } from "url";
6
- var getFilename = () => fileURLToPath(import.meta.url);
7
- var getDirname = () => path.dirname(getFilename());
8
- var __dirname = /* @__PURE__ */ getDirname();
9
- var __filename = /* @__PURE__ */ getFilename();
10
- import fs from "node:fs";
11
- import path2 from "node:path";
12
- import { rspack } from "@rspack/core";
13
- import cors from "cors";
14
- import express from "express";
15
- import HtmlWebpackPlugin from "html-webpack-plugin";
16
- import { globSync } from "tinyglobby";
17
- import colors from "./colors.js";
18
- import { TEMP_DIR } from "./constants.js";
19
- import { logger } from "./logger.js";
20
- import {
21
- getCompiledPkgPath,
22
- getIpv4Interfaces,
23
- getPort,
24
- getUserDepPath,
25
- isPlainObject,
26
- isString,
27
- logUpdate,
28
- removeDir
29
- } from "./utils.js";
30
- const app = express();
31
- app.use(cors());
32
- const CACHE_DIR = "umd";
33
- const externalAlias = {
34
- react: "React",
35
- "react-dom": "ReactDOM",
36
- "react-router": "ReactRouter",
37
- "react-router-dom": "ReactRouterDOM"
38
- };
39
- const count = {
40
- total: 0,
41
- bundled: 0
42
- };
43
- const failedDeps = [];
44
- const noEntryDeps = [];
45
- const updateProgress = () => {
46
- logUpdate(
47
- `${colors.magenta(colors.bold("»"))} Optimizing dependencies (${count.bundled}/${count.total})`
48
- );
49
- if (count.total === count.bundled + failedDeps.length) {
50
- console.log();
51
- }
52
- };
53
- const getExternalLibraryName = (pkgName) => {
54
- return externalAlias[pkgName] || pkgName;
55
- };
56
- const getExternalValue = (pkgName) => {
57
- return `window ${getExternalLibraryName(pkgName)}`;
58
- };
59
- const bundleDep = ({
60
- root,
61
- name,
62
- entry,
63
- version
64
- }) => {
65
- return new Promise((resolve) => {
66
- const pkgDir = path2.resolve(root, TEMP_DIR, CACHE_DIR, name);
67
- const outDir = path2.resolve(pkgDir, version);
68
- const getResult = () => {
69
- const assets = globSync("**/index.{js,css}", {
70
- cwd: outDir,
71
- absolute: true
72
- });
73
- return {
74
- name,
75
- assets
76
- };
77
- };
78
- if (fs.existsSync(outDir)) {
79
- resolve(getResult());
80
- return;
81
- }
82
- removeDir(pkgDir);
83
- count.total++;
84
- updateProgress();
85
- const getSwcOptions = ({ tsx }) => {
86
- return {
87
- jsc: {
88
- parser: {
89
- tsx,
90
- syntax: "typescript",
91
- dynamicImport: true,
92
- decorators: true
93
- },
94
- transform: {
95
- react: {
96
- runtime: "automatic"
97
- }
98
- }
99
- }
100
- };
1
+ import __rslib_shim_module__ from 'module';
2
+ /*#__PURE__*/ import.meta.url;
3
+ import * as __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__ from "node:fs";
4
+ import * as __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__ from "node:path";
5
+ import * as __WEBPACK_EXTERNAL_MODULE__rspack_core_e0096ff7__ from "@rspack/core";
6
+ import * as __WEBPACK_EXTERNAL_MODULE_cors__ from "cors";
7
+ import * as __WEBPACK_EXTERNAL_MODULE_express__ from "express";
8
+ import * as __WEBPACK_EXTERNAL_MODULE_html_webpack_plugin_e07f62c9__ from "html-webpack-plugin";
9
+ import * as __WEBPACK_EXTERNAL_MODULE_tinyglobby__ from "tinyglobby";
10
+ import * as __WEBPACK_EXTERNAL_MODULE__colors_js_b738ede3__ from "./colors.js";
11
+ import * as __WEBPACK_EXTERNAL_MODULE__constants_js_e283b470__ from "./constants.js";
12
+ import * as __WEBPACK_EXTERNAL_MODULE__global_js_67e2b430__ from "./global.js";
13
+ import * as __WEBPACK_EXTERNAL_MODULE__logger_js_c2be5186__ from "./logger.js";
14
+ import * as __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__ from "./utils.js";
15
+ const CACHE_DIR = 'umd';
16
+ const getExternalLibraryName = (pkgName)=>{
17
+ const externalAlias = {
18
+ react: 'React',
19
+ 'react-dom': 'ReactDOM',
20
+ 'react-router': 'ReactRouter',
21
+ 'react-router-dom': 'ReactRouterDOM'
101
22
  };
102
- const compiler = rspack({
103
- entry: {
104
- index: entry
105
- },
106
- context: root,
107
- mode: "development",
108
- output: {
109
- clean: true,
110
- path: outDir,
111
- pathinfo: false,
112
- library: {
113
- name: getExternalLibraryName(name),
114
- type: "umd",
115
- umdNamedDefine: true
116
- },
117
- globalObject: "this"
118
- },
119
- devtool: false,
120
- module: {
121
- rules: [
122
- {
123
- test: /\.(j|t)s$/,
124
- use: [
125
- {
126
- loader: "builtin:swc-loader",
127
- options: getSwcOptions({ tsx: false })
128
- }
129
- ]
130
- },
131
- {
132
- test: /\.(j|t)sx$/,
133
- use: [
134
- {
135
- loader: "builtin:swc-loader",
136
- options: getSwcOptions({ tsx: true })
137
- }
138
- ]
139
- },
140
- {
141
- test: /\.less$/,
142
- type: "css/auto",
143
- use: [
144
- {
145
- loader: getCompiledPkgPath("less-loader"),
146
- options: {
147
- lessOptions: {
148
- javascriptEnabled: true
149
- },
150
- implementation: getUserDepPath(root, "less")
151
- }
152
- }
153
- ]
154
- },
155
- {
156
- test: /\.s[ac]ss$/i,
157
- type: "css/auto",
158
- use: [
159
- {
160
- loader: getCompiledPkgPath("sass-loader"),
161
- options: {
162
- api: "modern-compiler",
163
- implementation: getUserDepPath(root, ["sass-embedded", "sass"])
164
- }
165
- }
166
- ]
167
- }
168
- ]
169
- },
170
- optimization: {
171
- splitChunks: false
172
- },
173
- experiments: {
174
- css: true
175
- },
176
- externals: {
177
- react: getExternalValue("react"),
178
- "react-dom": getExternalValue("react-dom")
179
- }
180
- });
181
- compiler.run((_, stats) => {
182
- let isFailed = false;
183
- if (stats?.hasErrors()) {
184
- isFailed = true;
185
- failedDeps.push(name);
186
- removeDir(outDir);
187
- } else {
188
- count.bundled++;
189
- }
190
- updateProgress();
191
- compiler.close(() => {
192
- resolve(!isFailed ? getResult() : void 0);
193
- });
194
- });
195
- });
23
+ return externalAlias[pkgName] || pkgName;
196
24
  };
197
- const getExistExternals = (externals) => {
198
- const existExternals = /* @__PURE__ */ new Set();
199
- if (Array.isArray(externals)) {
200
- externals.forEach((item) => {
201
- if (isPlainObject(item)) {
202
- Object.keys(item).forEach((key) => existExternals.add(key));
203
- }
25
+ const getExternalValue = (pkgName)=>`window ${getExternalLibraryName(pkgName)}`;
26
+ const getExistExternals = (externals)=>{
27
+ const existExternals = new Set();
28
+ if (Array.isArray(externals)) externals.forEach((item)=>{
29
+ if ((0, __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.isPlainObject)(item)) Object.keys(item).forEach((key)=>existExternals.add(key));
204
30
  });
205
- } else if (isPlainObject(externals)) {
206
- Object.keys(externals).forEach((key) => existExternals.add(key));
207
- }
208
- return Array.from(existExternals);
31
+ else if ((0, __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.isPlainObject)(externals)) Object.keys(externals).forEach((key)=>existExternals.add(key));
32
+ return Array.from(existExternals);
209
33
  };
210
- const getPkgEntry = (packageJson) => {
211
- if (packageJson.module)
212
- return packageJson.module;
213
- if (packageJson.exports) {
214
- if (isString(packageJson.exports))
215
- return packageJson.exports;
216
- const defaultExport = packageJson.exports["."];
217
- if (defaultExport) {
218
- if (isString(defaultExport))
219
- return defaultExport;
220
- if (isString(defaultExport.import))
221
- return defaultExport.import;
222
- if (isString(defaultExport.browser))
223
- return defaultExport.browser;
224
- if (isString(defaultExport.default))
225
- return defaultExport.default;
34
+ const getPkgEntry = (packageJson)=>{
35
+ if (packageJson.module) return packageJson.module;
36
+ if (packageJson.exports) {
37
+ if ((0, __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.isString)(packageJson.exports)) return packageJson.exports;
38
+ const defaultExport = packageJson.exports['.'];
39
+ if (defaultExport) {
40
+ if ((0, __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.isString)(defaultExport)) return defaultExport;
41
+ if ((0, __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.isString)(defaultExport.import)) return defaultExport.import;
42
+ if ((0, __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.isString)(defaultExport.browser)) return defaultExport.browser;
43
+ if ((0, __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.isString)(defaultExport.default)) return defaultExport.default;
44
+ }
45
+ if ((0, __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.isString)(packageJson.exports.default)) return packageJson.exports.default;
226
46
  }
227
- if (isString(packageJson.exports.default))
228
- return packageJson.exports.default;
229
- }
230
- if (packageJson.main)
231
- return packageJson.main;
47
+ if (packageJson.main) return packageJson.main;
232
48
  };
233
- const prebundleDeps = async ({
234
- unpackConfig
235
- }) => {
236
- const userOptions = isPlainObject(unpackConfig.dev?.prebundle) ? unpackConfig.dev.prebundle : {};
237
- const { root } = unpackConfig;
238
- const packageJson = JSON.parse(fs.readFileSync(path2.resolve(root, "package.json"), "utf-8"));
239
- const existExternals = getExistExternals(unpackConfig.externals);
240
- const excludeDeps = [...existExternals || [], ...userOptions.exclude || []];
241
- const shouldIncludeDeps = Object.keys(packageJson.dependencies).filter(
242
- (pkgName) => !excludeDeps.includes(pkgName)
243
- );
244
- const needBundleDeps = shouldIncludeDeps.map((pkgName) => {
245
- const packageJson2 = JSON.parse(
246
- fs.readFileSync(path2.resolve(root, "node_modules", pkgName, "package.json"), "utf-8")
247
- );
248
- const entry = getPkgEntry(packageJson2);
249
- if (!entry) {
250
- noEntryDeps.push(pkgName);
251
- return;
252
- }
253
- return {
254
- name: pkgName,
255
- entry: path2.resolve(root, "node_modules", pkgName, entry),
256
- version: packageJson2.version
49
+ const prebundleDeps = async ({ unpackConfig })=>{
50
+ var _unpackConfig_dev;
51
+ const count = {
52
+ total: 0,
53
+ bundled: 0
54
+ };
55
+ const failedDeps = [];
56
+ const updateProgress = ()=>{
57
+ (0, __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.logUpdate)(`${__WEBPACK_EXTERNAL_MODULE__colors_js_b738ede3__["default"].magenta(__WEBPACK_EXTERNAL_MODULE__colors_js_b738ede3__["default"].bold('»'))} Optimizing dependencies (${count.bundled}/${count.total})`);
58
+ if (count.total === count.bundled + failedDeps.length) console.log();
257
59
  };
258
- }).filter(Boolean);
259
- if (noEntryDeps[0]) {
260
- logger.warn(`Could not find entry for "${colors.bold(noEntryDeps.join(", "))}"`);
261
- }
262
- const bundledDeps = await Promise.all(
263
- needBundleDeps.map((depInfo) => bundleDep({ root, ...depInfo }))
264
- );
265
- if (failedDeps[0]) {
266
- logger.warn(`Something went wrong while optimizing "${colors.bold(failedDeps.join(", "))}"`);
267
- }
268
- const cachePath = path2.resolve(root, TEMP_DIR, CACHE_DIR);
269
- app.use(`/${CACHE_DIR}`, express.static(cachePath));
270
- const port = await getPort(3200);
271
- app.listen(port, () => {
272
- });
273
- const externals = {};
274
- const jsAssets = [];
275
- const cssAssets = [];
276
- const preJsAssets = [];
277
- const ipv4Interfaces = getIpv4Interfaces();
278
- bundledDeps.filter(Boolean).forEach((dep) => {
279
- externals[dep.name] = getExternalValue(dep.name);
280
- dep.assets.forEach((absPath) => {
281
- const relativePath = path2.relative(cachePath, absPath);
282
- const preDeps = ["react", "react-dom", "react-router", "react-router-dom"];
283
- const serverPath = `//${ipv4Interfaces[1].address}:${port}/${CACHE_DIR}/${relativePath}`;
284
- switch (path2.extname(relativePath)) {
285
- case ".js":
286
- if (preDeps.includes(dep.name)) {
287
- preJsAssets.push({
288
- path: serverPath,
289
- order: preDeps.indexOf(dep.name)
60
+ const { root } = unpackConfig;
61
+ const bundleDep = ({ name, entry, version })=>new Promise((resolve)=>{
62
+ const pkgDir = __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].resolve(root, __WEBPACK_EXTERNAL_MODULE__constants_js_e283b470__.TEMP_DIR, CACHE_DIR, name);
63
+ const outDir = __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].resolve(pkgDir, version);
64
+ const getResult = ()=>{
65
+ const assets = (0, __WEBPACK_EXTERNAL_MODULE_tinyglobby__.globSync)('**/index.{js,css}', {
66
+ cwd: outDir,
67
+ absolute: true
68
+ });
69
+ return {
70
+ name,
71
+ assets
72
+ };
73
+ };
74
+ if (__WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__["default"].existsSync(outDir)) {
75
+ resolve(getResult());
76
+ return;
77
+ }
78
+ (0, __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.removeDir)(pkgDir);
79
+ count.total++;
80
+ updateProgress();
81
+ const getSwcOptions = ({ tsx })=>({
82
+ jsc: {
83
+ parser: {
84
+ tsx,
85
+ syntax: "typescript",
86
+ dynamicImport: true,
87
+ decorators: true
88
+ },
89
+ transform: {
90
+ react: {
91
+ runtime: 'automatic'
92
+ }
93
+ }
94
+ }
95
+ });
96
+ const compiler = (0, __WEBPACK_EXTERNAL_MODULE__rspack_core_e0096ff7__.rspack)({
97
+ entry: {
98
+ index: entry
99
+ },
100
+ context: root,
101
+ mode: 'development',
102
+ output: {
103
+ clean: true,
104
+ path: outDir,
105
+ pathinfo: false,
106
+ library: {
107
+ name: getExternalLibraryName(name),
108
+ type: 'umd',
109
+ umdNamedDefine: true
110
+ },
111
+ globalObject: 'this'
112
+ },
113
+ devtool: false,
114
+ module: {
115
+ rules: [
116
+ {
117
+ test: /\.(j|t)s$/,
118
+ use: [
119
+ {
120
+ loader: 'builtin:swc-loader',
121
+ options: getSwcOptions({
122
+ tsx: false
123
+ })
124
+ }
125
+ ]
126
+ },
127
+ {
128
+ test: /\.(j|t)sx$/,
129
+ use: [
130
+ {
131
+ loader: 'builtin:swc-loader',
132
+ options: getSwcOptions({
133
+ tsx: true
134
+ })
135
+ }
136
+ ]
137
+ },
138
+ {
139
+ test: /\.less$/,
140
+ type: 'css/auto',
141
+ use: [
142
+ {
143
+ loader: (0, __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.getCompiledPkgPath)('less-loader'),
144
+ options: {
145
+ lessOptions: {
146
+ javascriptEnabled: true
147
+ },
148
+ implementation: (0, __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.getUserDepPath)(root, 'less')
149
+ }
150
+ }
151
+ ]
152
+ },
153
+ {
154
+ test: /\.s[ac]ss$/i,
155
+ type: 'css/auto',
156
+ use: [
157
+ {
158
+ loader: (0, __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.getCompiledPkgPath)('sass-loader'),
159
+ options: {
160
+ api: 'modern-compiler',
161
+ implementation: (0, __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.getUserDepPath)(root, [
162
+ 'sass-embedded',
163
+ 'sass'
164
+ ])
165
+ }
166
+ }
167
+ ]
168
+ }
169
+ ]
170
+ },
171
+ optimization: {
172
+ splitChunks: false
173
+ },
174
+ experiments: {
175
+ css: true
176
+ },
177
+ externals: {
178
+ react: getExternalValue('react'),
179
+ 'react-dom': getExternalValue('react-dom'),
180
+ 'react-router': getExternalValue('react-router'),
181
+ 'react-router-dom': getExternalValue('react-router-dom')
182
+ }
290
183
  });
291
- } else {
292
- jsAssets.push(serverPath);
293
- }
294
- break;
295
- case ".css":
296
- cssAssets.push(serverPath);
297
- break;
298
- default:
299
- break;
300
- }
184
+ compiler.run((_, stats)=>{
185
+ let isFailed = false;
186
+ if (null == stats ? void 0 : stats.hasErrors()) {
187
+ isFailed = true;
188
+ failedDeps.push(name);
189
+ (0, __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.removeDir)(outDir);
190
+ } else count.bundled++;
191
+ updateProgress();
192
+ compiler.close(()=>{
193
+ resolve(isFailed ? void 0 : getResult());
194
+ });
195
+ });
196
+ });
197
+ const userOptions = (0, __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.isPlainObject)(null === (_unpackConfig_dev = unpackConfig.dev) || void 0 === _unpackConfig_dev ? void 0 : _unpackConfig_dev.prebundle) ? unpackConfig.dev.prebundle : {};
198
+ const packageJson = JSON.parse(__WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__["default"].readFileSync(__WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].resolve(root, 'package.json'), 'utf-8'));
199
+ const existExternals = getExistExternals(unpackConfig.externals);
200
+ const excludeDeps = [
201
+ ...existExternals || [],
202
+ ...userOptions.exclude || []
203
+ ];
204
+ const shouldIncludeDeps = Object.keys(packageJson.dependencies).filter((pkgName)=>!excludeDeps.includes(pkgName));
205
+ const noEntryDeps = [];
206
+ const needBundleDeps = shouldIncludeDeps.map((pkgName)=>{
207
+ const packageJson = JSON.parse(__WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__["default"].readFileSync(__WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].resolve(root, 'node_modules', pkgName, 'package.json'), 'utf-8'));
208
+ const entry = getPkgEntry(packageJson);
209
+ if (!entry) {
210
+ noEntryDeps.push(pkgName);
211
+ return;
212
+ }
213
+ return {
214
+ name: pkgName,
215
+ entry: __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].resolve(root, 'node_modules', pkgName, entry),
216
+ version: packageJson.version
217
+ };
218
+ }).filter(Boolean);
219
+ if (noEntryDeps[0]) __WEBPACK_EXTERNAL_MODULE__logger_js_c2be5186__.logger.warn(`Could not find entry for "${__WEBPACK_EXTERNAL_MODULE__colors_js_b738ede3__["default"].bold(noEntryDeps.join(', '))}"`);
220
+ const bundledDeps = await Promise.all(needBundleDeps.map((depInfo)=>bundleDep(depInfo)));
221
+ if (failedDeps[0]) __WEBPACK_EXTERNAL_MODULE__logger_js_c2be5186__.logger.warn(`Something went wrong while optimizing "${__WEBPACK_EXTERNAL_MODULE__colors_js_b738ede3__["default"].bold(failedDeps.join(', '))}"`);
222
+ const cachePath = __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].resolve(root, __WEBPACK_EXTERNAL_MODULE__constants_js_e283b470__.TEMP_DIR, CACHE_DIR);
223
+ const app = (0, __WEBPACK_EXTERNAL_MODULE_express__["default"])();
224
+ app.use((0, __WEBPACK_EXTERNAL_MODULE_cors__["default"])());
225
+ app.use(`/${CACHE_DIR}`, __WEBPACK_EXTERNAL_MODULE_express__["default"].static(cachePath));
226
+ const port = await (0, __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.getPort)(3200);
227
+ const staticServer = app.listen(port, ()=>{});
228
+ __WEBPACK_EXTERNAL_MODULE__global_js_67e2b430__.restartCleaners.push(()=>new Promise((resolve)=>staticServer.close(()=>resolve())));
229
+ const externals = {};
230
+ const jsAssets = [];
231
+ const cssAssets = [];
232
+ const preJsAssets = [];
233
+ const ipv4Interfaces = (0, __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.getIpv4Interfaces)();
234
+ bundledDeps.filter(Boolean).forEach((dep)=>{
235
+ externals[dep.name] = getExternalValue(dep.name);
236
+ dep.assets.forEach((absPath)=>{
237
+ const relativePath = __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].relative(cachePath, absPath);
238
+ const preDeps = [
239
+ 'react',
240
+ 'react-dom',
241
+ 'react-router',
242
+ 'react-router-dom'
243
+ ];
244
+ const serverPath = `//${ipv4Interfaces[1].address}:${port}/${CACHE_DIR}/${relativePath}`;
245
+ switch(__WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].extname(relativePath)){
246
+ case '.js':
247
+ if (preDeps.includes(dep.name)) preJsAssets.push({
248
+ path: serverPath,
249
+ order: preDeps.indexOf(dep.name)
250
+ });
251
+ else jsAssets.push(serverPath);
252
+ break;
253
+ case '.css':
254
+ cssAssets.push(serverPath);
255
+ break;
256
+ default:
257
+ break;
258
+ }
259
+ });
301
260
  });
302
- });
303
- unpackConfig.externals = Array.isArray(unpackConfig.externals) ? [externals, ...unpackConfig.externals] : { ...externals, ...unpackConfig.externals };
304
- const HtmlPlugin = unpackConfig.bundler === "rspack" ? rspack.HtmlRspackPlugin : HtmlWebpackPlugin;
305
- unpackConfig.plugins.push({
306
- name: "unpack:prebundle",
307
- bundlerConfig: (config) => {
308
- const PLUGIN_NAME = "PluginInjectAssets";
309
- config.plugins.push({
310
- apply: (compiler) => {
311
- compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
312
- HtmlPlugin.getCompilationHooks(compilation).beforeAssetTagGeneration.tapPromise(
313
- PLUGIN_NAME,
314
- async (args) => {
315
- args.assets.js.unshift(
316
- ...[
317
- ...preJsAssets.sort((a, b) => a.order - b.order).map((item) => item.path),
318
- ...jsAssets
319
- ]
320
- );
321
- args.assets.css.unshift(...cssAssets);
322
- return args;
323
- }
324
- );
325
- });
261
+ unpackConfig.externals = Array.isArray(unpackConfig.externals) ? [
262
+ externals,
263
+ ...unpackConfig.externals
264
+ ] : {
265
+ ...externals,
266
+ ...unpackConfig.externals
267
+ };
268
+ const HtmlPlugin = 'rspack' === unpackConfig.bundler ? __WEBPACK_EXTERNAL_MODULE__rspack_core_e0096ff7__.rspack.HtmlRspackPlugin : __WEBPACK_EXTERNAL_MODULE_html_webpack_plugin_e07f62c9__["default"];
269
+ unpackConfig.plugins.push({
270
+ name: 'unpack:prebundle',
271
+ bundlerConfig: (config)=>{
272
+ const PLUGIN_NAME = 'PluginInjectAssets';
273
+ config.plugins.push({
274
+ apply: (compiler)=>{
275
+ compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation)=>{
276
+ HtmlPlugin.getCompilationHooks(compilation).beforeAssetTagGeneration.tapPromise(PLUGIN_NAME, async (args)=>{
277
+ args.assets.js.unshift(...preJsAssets.sort((a, b)=>a.order - b.order).map((item)=>item.path), ...jsAssets);
278
+ args.assets.css.unshift(...cssAssets);
279
+ return args;
280
+ });
281
+ });
282
+ }
283
+ });
284
+ return config;
326
285
  }
327
- });
328
- return config;
329
- }
330
- });
331
- return unpackConfig;
332
- };
333
- export {
334
- prebundleDeps
286
+ });
287
+ return unpackConfig;
335
288
  };
289
+ export { prebundleDeps };