@qse/edu-scripts 0.0.0-beta.1 → 0.0.0-beta.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/es/config/webpackConfig.js +38 -11
- package/es/start.js +9 -0
- package/es/utils/defineConfig.d.ts +1 -1
- package/eslint.config.mjs +1 -1
- package/package.json +4 -2
- package/src/config/plugins/mock-server/index.js +2 -2
- package/src/config/webpackConfig.js +37 -11
- package/src/start.js +9 -0
- package/src/utils/defineConfig.ts +1 -1
|
@@ -6,8 +6,8 @@ import { BundleAnalyzerPlugin } from "webpack-bundle-analyzer";
|
|
|
6
6
|
import ReactRefreshPlugin from "@rspack/plugin-react-refresh";
|
|
7
7
|
import paths from "./paths.js";
|
|
8
8
|
import appConfig from "../utils/appConfig.js";
|
|
9
|
-
import { once } from "lodash-es";
|
|
10
9
|
import { createRequire } from "node:module";
|
|
10
|
+
import chalk from "chalk";
|
|
11
11
|
var require2 = createRequire(import.meta.url);
|
|
12
12
|
var appPkg = fs.readJsonSync(paths.package);
|
|
13
13
|
var jsMainPath = appConfig.grayscale ? `${appPkg.name}/beta/${appPkg.name}` : `${appPkg.name}/${appPkg.name}`;
|
|
@@ -161,7 +161,7 @@ function getWebpackConfig(args, override) {
|
|
|
161
161
|
},
|
|
162
162
|
extensions: [".web.js", ".web.mjs", ".js", ".mjs", ".jsx", ".ts", ".tsx", ".json", ".wasm"]
|
|
163
163
|
},
|
|
164
|
-
stats:
|
|
164
|
+
stats: false,
|
|
165
165
|
devtool: isDev ? "cheap-module-source-map" : false,
|
|
166
166
|
module: {
|
|
167
167
|
rules: [
|
|
@@ -172,11 +172,13 @@ function getWebpackConfig(args, override) {
|
|
|
172
172
|
type: "asset/source"
|
|
173
173
|
},
|
|
174
174
|
{
|
|
175
|
-
test: /\.[jt]sx?$/,
|
|
175
|
+
test: /\.[cm]?[jt]sx?$/,
|
|
176
|
+
exclude: /node_modules/,
|
|
176
177
|
use: [
|
|
177
178
|
{
|
|
178
179
|
loader: "builtin:swc-loader",
|
|
179
180
|
options: {
|
|
181
|
+
env: { targets: process.env.BROWSERSLIST },
|
|
180
182
|
rspackExperiments: {
|
|
181
183
|
import: [
|
|
182
184
|
{
|
|
@@ -186,14 +188,16 @@ function getWebpackConfig(args, override) {
|
|
|
186
188
|
...override.import
|
|
187
189
|
]
|
|
188
190
|
},
|
|
191
|
+
isModule: "unknown",
|
|
189
192
|
jsc: {
|
|
190
193
|
parser: {
|
|
191
194
|
syntax: "typescript",
|
|
192
195
|
tsx: true,
|
|
193
196
|
decorators: override.decorators
|
|
194
197
|
},
|
|
195
|
-
|
|
198
|
+
externalHelpers: true,
|
|
196
199
|
transform: {
|
|
200
|
+
legacyDecorator: override.decorators,
|
|
197
201
|
react: {
|
|
198
202
|
runtime: "automatic",
|
|
199
203
|
development: isDev,
|
|
@@ -205,6 +209,25 @@ function getWebpackConfig(args, override) {
|
|
|
205
209
|
}
|
|
206
210
|
]
|
|
207
211
|
},
|
|
212
|
+
{
|
|
213
|
+
test: /\.[cm]?jsx?$/,
|
|
214
|
+
exclude: /node_modules[\\/](core-js|@swc[\\/]helpers)([\\/]|$)/,
|
|
215
|
+
use: [
|
|
216
|
+
{
|
|
217
|
+
loader: "builtin:swc-loader",
|
|
218
|
+
options: {
|
|
219
|
+
env: { targets: process.env.BROWSERSLIST },
|
|
220
|
+
isModule: "unknown",
|
|
221
|
+
jsc: {
|
|
222
|
+
parser: {
|
|
223
|
+
syntax: "ecmascript"
|
|
224
|
+
},
|
|
225
|
+
externalHelpers: true
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
]
|
|
230
|
+
},
|
|
208
231
|
{
|
|
209
232
|
test: cssRegex,
|
|
210
233
|
exclude: cssModuleRegex,
|
|
@@ -367,14 +390,18 @@ function getWebpackConfig(args, override) {
|
|
|
367
390
|
})
|
|
368
391
|
) : [],
|
|
369
392
|
process.env.ANALYZE && isProd && new BundleAnalyzerPlugin(),
|
|
370
|
-
isDev &&
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
393
|
+
isDev && ((compiler) => {
|
|
394
|
+
let isFirst = true;
|
|
395
|
+
compiler.hooks.afterDone.tap("edu-scripts-startup", (stats) => {
|
|
396
|
+
if (!isFirst)
|
|
397
|
+
console.clear();
|
|
398
|
+
isFirst = false;
|
|
399
|
+
if (override.startup) {
|
|
374
400
|
const logger = compiler.getInfrastructureLogger("edu-scripts");
|
|
375
|
-
override.startup({ logger, chalk
|
|
376
|
-
}
|
|
377
|
-
|
|
401
|
+
override.startup({ logger, chalk, compiler });
|
|
402
|
+
}
|
|
403
|
+
console.log(stats.toString({ preset: "errors-warnings", timings: true, colors: true }));
|
|
404
|
+
});
|
|
378
405
|
})
|
|
379
406
|
].filter(Boolean),
|
|
380
407
|
optimization: {
|
package/es/start.js
CHANGED
|
@@ -16,6 +16,15 @@ async function start(args) {
|
|
|
16
16
|
args.port = port;
|
|
17
17
|
process.env.PORT = port;
|
|
18
18
|
const compiler = rspack(getConfig(args));
|
|
19
|
+
const middleware = rspack.lazyCompilationMiddleware(compiler);
|
|
20
|
+
const oldSetupMiddlewares = compiler.options.devServer.setupMiddlewares;
|
|
21
|
+
compiler.options.devServer.setupMiddlewares = (middlewares, devServer2) => {
|
|
22
|
+
if (oldSetupMiddlewares) {
|
|
23
|
+
middlewares = oldSetupMiddlewares(middlewares, devServer2);
|
|
24
|
+
}
|
|
25
|
+
middlewares.unshift(middleware);
|
|
26
|
+
return middlewares;
|
|
27
|
+
};
|
|
19
28
|
const devServer = new RspackDevServer(compiler.options.devServer, compiler);
|
|
20
29
|
devServer.start();
|
|
21
30
|
[("SIGINT", "SIGTERM")].forEach(function(sig) {
|
package/eslint.config.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qse/edu-scripts",
|
|
3
|
-
"version": "0.0.0-beta.
|
|
3
|
+
"version": "0.0.0-beta.3",
|
|
4
4
|
"author": "Kinoko",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
"@rspack/plugin-react-refresh": "^1.6.1",
|
|
41
41
|
"@svgr/webpack": "^8.1.0",
|
|
42
42
|
"@swc-node/register": "^1.11.1",
|
|
43
|
+
"@swc/helpers": "^0.5.19",
|
|
43
44
|
"@types/express": "^4.17.25",
|
|
44
45
|
"chalk": "^4.1.2",
|
|
45
46
|
"chokidar": "^3.6.0",
|
|
@@ -83,10 +84,11 @@
|
|
|
83
84
|
"devDependencies": {
|
|
84
85
|
"@babel/preset-env": "~7.29.0",
|
|
85
86
|
"@babel/preset-typescript": "^7.28.5",
|
|
87
|
+
"@qse/eslint-config": "^1.0.0",
|
|
86
88
|
"@types/fs-extra": "^11.0.4",
|
|
87
89
|
"@types/jest": "^30.0.0",
|
|
88
90
|
"@types/yargs": "^17.0.35",
|
|
89
|
-
"eslint
|
|
91
|
+
"eslint": "^9.39.3",
|
|
90
92
|
"father": "^4.5.2",
|
|
91
93
|
"jest": "^30.2.0",
|
|
92
94
|
"rimraf": "^6.1.3",
|
|
@@ -125,8 +125,8 @@ function mockMiddlewave(req, res, next) {
|
|
|
125
125
|
}
|
|
126
126
|
|
|
127
127
|
/**
|
|
128
|
-
* @param {import('
|
|
129
|
-
* @param {import('
|
|
128
|
+
* @param {Parameters<import('@rspack/dev-server').Configuration['setupMiddlewares']>[0]} middelwaves
|
|
129
|
+
* @param {Parameters<import('@rspack/dev-server').Configuration['setupMiddlewares']>[1]} devServer
|
|
130
130
|
*/
|
|
131
131
|
function setupMockServer(middelwaves, devServer) {
|
|
132
132
|
if (!fs.existsSync(paths.mock)) return
|
|
@@ -5,8 +5,8 @@ import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'
|
|
|
5
5
|
import ReactRefreshPlugin from '@rspack/plugin-react-refresh'
|
|
6
6
|
import paths from './paths.js'
|
|
7
7
|
import appConfig from '../utils/appConfig.js'
|
|
8
|
-
import { once } from 'lodash-es'
|
|
9
8
|
import { createRequire } from 'node:module'
|
|
9
|
+
import chalk from 'chalk'
|
|
10
10
|
|
|
11
11
|
const require = createRequire(import.meta.url)
|
|
12
12
|
const appPkg = fs.readJsonSync(paths.package)
|
|
@@ -185,7 +185,7 @@ export default function getWebpackConfig(args, override) {
|
|
|
185
185
|
},
|
|
186
186
|
extensions: ['.web.js', '.web.mjs', '.js', '.mjs', '.jsx', '.ts', '.tsx', '.json', '.wasm'],
|
|
187
187
|
},
|
|
188
|
-
stats:
|
|
188
|
+
stats: false,
|
|
189
189
|
devtool: isDev ? 'cheap-module-source-map' : false,
|
|
190
190
|
module: {
|
|
191
191
|
rules: [
|
|
@@ -196,11 +196,13 @@ export default function getWebpackConfig(args, override) {
|
|
|
196
196
|
type: 'asset/source',
|
|
197
197
|
},
|
|
198
198
|
{
|
|
199
|
-
test: /\.[jt]sx?$/,
|
|
199
|
+
test: /\.[cm]?[jt]sx?$/,
|
|
200
|
+
exclude: /node_modules/,
|
|
200
201
|
use: [
|
|
201
202
|
{
|
|
202
203
|
loader: 'builtin:swc-loader',
|
|
203
204
|
options: {
|
|
205
|
+
env: { targets: process.env.BROWSERSLIST },
|
|
204
206
|
rspackExperiments: {
|
|
205
207
|
import: [
|
|
206
208
|
{
|
|
@@ -210,14 +212,16 @@ export default function getWebpackConfig(args, override) {
|
|
|
210
212
|
...override.import,
|
|
211
213
|
],
|
|
212
214
|
},
|
|
215
|
+
isModule: 'unknown',
|
|
213
216
|
jsc: {
|
|
214
217
|
parser: {
|
|
215
218
|
syntax: 'typescript',
|
|
216
219
|
tsx: true,
|
|
217
220
|
decorators: override.decorators,
|
|
218
221
|
},
|
|
219
|
-
|
|
222
|
+
externalHelpers: true,
|
|
220
223
|
transform: {
|
|
224
|
+
legacyDecorator: override.decorators,
|
|
221
225
|
react: {
|
|
222
226
|
runtime: 'automatic',
|
|
223
227
|
development: isDev,
|
|
@@ -229,6 +233,25 @@ export default function getWebpackConfig(args, override) {
|
|
|
229
233
|
},
|
|
230
234
|
],
|
|
231
235
|
},
|
|
236
|
+
{
|
|
237
|
+
test: /\.[cm]?jsx?$/,
|
|
238
|
+
exclude: /node_modules[\\/](core-js|@swc[\\/]helpers)([\\/]|$)/,
|
|
239
|
+
use: [
|
|
240
|
+
{
|
|
241
|
+
loader: 'builtin:swc-loader',
|
|
242
|
+
options: {
|
|
243
|
+
env: { targets: process.env.BROWSERSLIST },
|
|
244
|
+
isModule: 'unknown',
|
|
245
|
+
jsc: {
|
|
246
|
+
parser: {
|
|
247
|
+
syntax: 'ecmascript',
|
|
248
|
+
},
|
|
249
|
+
externalHelpers: true,
|
|
250
|
+
},
|
|
251
|
+
},
|
|
252
|
+
},
|
|
253
|
+
],
|
|
254
|
+
},
|
|
232
255
|
{
|
|
233
256
|
test: cssRegex,
|
|
234
257
|
exclude: cssModuleRegex,
|
|
@@ -394,15 +417,18 @@ export default function getWebpackConfig(args, override) {
|
|
|
394
417
|
: []),
|
|
395
418
|
process.env.ANALYZE && isProd && new BundleAnalyzerPlugin(),
|
|
396
419
|
isDev &&
|
|
397
|
-
!!override.startup &&
|
|
398
420
|
((compiler) => {
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
421
|
+
let isFirst = true
|
|
422
|
+
compiler.hooks.afterDone.tap('edu-scripts-startup', (stats) => {
|
|
423
|
+
if (!isFirst) console.clear()
|
|
424
|
+
isFirst = false
|
|
425
|
+
|
|
426
|
+
if (override.startup) {
|
|
402
427
|
const logger = compiler.getInfrastructureLogger('edu-scripts')
|
|
403
|
-
override.startup({ logger, chalk
|
|
404
|
-
}
|
|
405
|
-
|
|
428
|
+
override.startup({ logger, chalk, compiler })
|
|
429
|
+
}
|
|
430
|
+
console.log(stats.toString({ preset: 'errors-warnings', timings: true, colors: true }))
|
|
431
|
+
})
|
|
406
432
|
}),
|
|
407
433
|
].filter(Boolean),
|
|
408
434
|
optimization: {
|
package/src/start.js
CHANGED
|
@@ -18,6 +18,15 @@ export default async function start(args) {
|
|
|
18
18
|
process.env.PORT = port
|
|
19
19
|
|
|
20
20
|
const compiler = rspack(getConfig(args))
|
|
21
|
+
const middleware = rspack.lazyCompilationMiddleware(compiler)
|
|
22
|
+
const oldSetupMiddlewares = compiler.options.devServer.setupMiddlewares
|
|
23
|
+
compiler.options.devServer.setupMiddlewares = (middlewares, devServer) => {
|
|
24
|
+
if (oldSetupMiddlewares) {
|
|
25
|
+
middlewares = oldSetupMiddlewares(middlewares, devServer)
|
|
26
|
+
}
|
|
27
|
+
middlewares.unshift(middleware)
|
|
28
|
+
return middlewares
|
|
29
|
+
}
|
|
21
30
|
const devServer = new RspackDevServer(compiler.options.devServer, compiler)
|
|
22
31
|
devServer.start()
|
|
23
32
|
;[('SIGINT', 'SIGTERM')].forEach(function (sig) {
|