@qse/edu-scripts 0.0.0-beta.1 → 0.0.0-beta.2

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.
@@ -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: isDev ? { preset: "errors-warnings", timings: true } : void 0,
164
+ stats: false,
165
165
  devtool: isDev ? "cheap-module-source-map" : false,
166
166
  module: {
167
167
  rules: [
@@ -367,14 +367,18 @@ function getWebpackConfig(args, override) {
367
367
  })
368
368
  ) : [],
369
369
  process.env.ANALYZE && isProd && new BundleAnalyzerPlugin(),
370
- isDev && !!override.startup && ((compiler) => {
371
- compiler.hooks.afterDone.tap(
372
- "edu-scripts-startup",
373
- once(() => {
370
+ isDev && ((compiler) => {
371
+ let isFirst = true;
372
+ compiler.hooks.afterDone.tap("edu-scripts-startup", (stats) => {
373
+ if (!isFirst)
374
+ console.clear();
375
+ isFirst = false;
376
+ if (override.startup) {
374
377
  const logger = compiler.getInfrastructureLogger("edu-scripts");
375
- override.startup({ logger, chalk: require2("chalk"), compiler });
376
- })
377
- );
378
+ override.startup({ logger, chalk, compiler });
379
+ }
380
+ console.log(stats.toString({ preset: "errors-warnings", timings: true, colors: true }));
381
+ });
378
382
  })
379
383
  ].filter(Boolean),
380
384
  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) {
@@ -53,7 +53,7 @@ export type Config = {
53
53
  */
54
54
  mock?: boolean;
55
55
  /**
56
- * 开发模式启动后只执行一次的函数,用来展示启动后的提示信息,或者自定义的逻辑
56
+ * 开发模式启动后用来展示启动后的提示信息,或者自定义的逻辑
57
57
  */
58
58
  startup?: (params: {
59
59
  /** 控制台输出内容 */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qse/edu-scripts",
3
- "version": "0.0.0-beta.1",
3
+ "version": "0.0.0-beta.2",
4
4
  "author": "Kinoko",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -86,6 +86,7 @@
86
86
  "@types/fs-extra": "^11.0.4",
87
87
  "@types/jest": "^30.0.0",
88
88
  "@types/yargs": "^17.0.35",
89
+ "eslint": "^9.39.3",
89
90
  "eslint-config-qsb-react": "^2.0.4",
90
91
  "father": "^4.5.2",
91
92
  "jest": "^30.2.0",
@@ -125,8 +125,8 @@ function mockMiddlewave(req, res, next) {
125
125
  }
126
126
 
127
127
  /**
128
- * @param {import('webpack-dev-server').Middleware[]} middelwaves
129
- * @param {import('webpack-dev-server')} devServer
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: isDev ? { preset: 'errors-warnings', timings: true } : undefined,
188
+ stats: false,
189
189
  devtool: isDev ? 'cheap-module-source-map' : false,
190
190
  module: {
191
191
  rules: [
@@ -394,15 +394,18 @@ export default function getWebpackConfig(args, override) {
394
394
  : []),
395
395
  process.env.ANALYZE && isProd && new BundleAnalyzerPlugin(),
396
396
  isDev &&
397
- !!override.startup &&
398
397
  ((compiler) => {
399
- compiler.hooks.afterDone.tap(
400
- 'edu-scripts-startup',
401
- once(() => {
398
+ let isFirst = true
399
+ compiler.hooks.afterDone.tap('edu-scripts-startup', (stats) => {
400
+ if (!isFirst) console.clear()
401
+ isFirst = false
402
+
403
+ if (override.startup) {
402
404
  const logger = compiler.getInfrastructureLogger('edu-scripts')
403
- override.startup({ logger, chalk: require('chalk'), compiler })
404
- })
405
- )
405
+ override.startup({ logger, chalk, compiler })
406
+ }
407
+ console.log(stats.toString({ preset: 'errors-warnings', timings: true, colors: true }))
408
+ })
406
409
  }),
407
410
  ].filter(Boolean),
408
411
  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) {
@@ -56,7 +56,7 @@ export type Config = {
56
56
  */
57
57
  mock?: boolean
58
58
  /**
59
- * 开发模式启动后只执行一次的函数,用来展示启动后的提示信息,或者自定义的逻辑
59
+ * 开发模式启动后用来展示启动后的提示信息,或者自定义的逻辑
60
60
  */
61
61
  startup?: (params: {
62
62
  /** 控制台输出内容 */