@qse/edu-scripts 1.14.14 → 1.14.16

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 CHANGED
@@ -1,5 +1,13 @@
1
1
  # 更新日志
2
2
 
3
+ ## 1.14.16 (2026-01-22)
4
+
5
+ - feat: 默认的 proxy 增加 referer 请求头
6
+
7
+ ## 1.14.15 (2025-08-15)
8
+
9
+ - feat: 增加 load chunk retry 功能
10
+
3
11
  ## 1.14.14 (2025-07-17)
4
12
 
5
13
  - fix: 将装饰器功能改成可配置项
@@ -33,6 +33,7 @@ var CaseSensitivePathsPlugin = require("case-sensitive-paths-webpack-plugin");
33
33
  var appPkg = require(paths.package);
34
34
  var appConfig = require("../utils/appConfig");
35
35
  var { ESBuildMinifyPlugin } = require("esbuild-loader");
36
+ var { RetryChunkLoadPlugin } = require("webpack-retry-chunk-load-plugin");
36
37
  var once = require("lodash/once");
37
38
  var jsMainPath = appConfig.grayscale ? `${appPkg.name}/beta/${appPkg.name}` : `${appPkg.name}/${appPkg.name}`;
38
39
  var assetPath = appConfig.grayscale ? `${appPkg.name}/beta/${appPkg.version}` : `${appPkg.name}/${appPkg.version}`;
@@ -349,6 +350,11 @@ module.exports = function getWebpackConfig(args, override) {
349
350
  resourceRegExp: /^\.\/locale$/,
350
351
  contextRegExp: /moment$/
351
352
  }),
353
+ new RetryChunkLoadPlugin({
354
+ maxRetries: 3,
355
+ retryDelay: 300,
356
+ lastResortScript: `setTimeout(function() { window.location.reload(); }, 2000)`
357
+ }),
352
358
  new webpack.DefinePlugin({
353
359
  "process.env.APP_NAME": JSON.stringify(appPkg.name),
354
360
  "process.env.APP_VERSION": JSON.stringify(appPkg.version),
@@ -1,6 +1,15 @@
1
1
  // src/config/webpackDevServerConfig.js
2
2
  var WebpackDevServer = require("webpack-dev-server");
3
3
  var setupMockServer = require("./plugins/mock-server");
4
+ function createProxy(context, target, origin) {
5
+ const url = new URL(origin || target);
6
+ return {
7
+ context: [context],
8
+ target,
9
+ changeOrigin: true,
10
+ headers: { host: url.host, origin: url.origin, referer: url.origin }
11
+ };
12
+ }
4
13
  module.exports = function getWebpackDevServerConfig(args, override) {
5
14
  const host = process.env.HOST || "0.0.0.0";
6
15
  const devServer = {
@@ -30,12 +39,7 @@ module.exports = function getWebpackDevServerConfig(args, override) {
30
39
  return middlewares;
31
40
  },
32
41
  proxy: [
33
- {
34
- context: ["/api"],
35
- target: "http://192.168.10.19:3339/qsxxwapdev",
36
- changeOrigin: true,
37
- headers: { host: "www.zhidianbao.cn", origin: "http://www.zhidianbao.cn" }
38
- }
42
+ createProxy("/api", "http://192.168.10.19:3339/qsxxwapdev", "http://www.zhidianbao.cn")
39
43
  ],
40
44
  compress: true
41
45
  };
@@ -44,13 +48,7 @@ module.exports = function getWebpackDevServerConfig(args, override) {
44
48
  devServer.proxy = [...override.proxy, ...devServer.proxy];
45
49
  } else if (typeof override.proxy === "object") {
46
50
  const proxies = Object.entries(override.proxy).map(([context, target]) => {
47
- const url = new URL(target);
48
- return {
49
- context: [context],
50
- target,
51
- changeOrigin: true,
52
- headers: { host: url.host, origin: url.origin }
53
- };
51
+ return createProxy(context, target);
54
52
  });
55
53
  devServer.proxy = [...proxies, ...devServer.proxy];
56
54
  } else {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qse/edu-scripts",
3
- "version": "1.14.14",
3
+ "version": "1.14.16",
4
4
  "author": "Kinoko",
5
5
  "license": "MIT",
6
6
  "description": "教育工程化基础框架",
@@ -43,7 +43,7 @@
43
43
  "@babel/register": "~7.25.9",
44
44
  "@babel/runtime": "~7.27.0",
45
45
  "@pmmmwh/react-refresh-webpack-plugin": "^0.5.16",
46
- "@qse/ssh-sftp": "^1.0.1",
46
+ "@qse/ssh-sftp": "^1.1.0",
47
47
  "@svgr/webpack": "^8.1.0",
48
48
  "@types/express": "^4.17.21",
49
49
  "babel-loader": "^9.2.1",
@@ -92,6 +92,7 @@
92
92
  "webpack": "^5.99.6",
93
93
  "webpack-bundle-analyzer": "^4.10.2",
94
94
  "webpack-dev-server": "^4.15.2",
95
+ "webpack-retry-chunk-load-plugin": "^3.1.1",
95
96
  "yargs": "^17.7.2"
96
97
  },
97
98
  "devDependencies": {
@@ -9,6 +9,7 @@ const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin')
9
9
  const appPkg = require(paths.package)
10
10
  const appConfig = require('../utils/appConfig')
11
11
  const { ESBuildMinifyPlugin } = require('esbuild-loader')
12
+ const { RetryChunkLoadPlugin } = require('webpack-retry-chunk-load-plugin')
12
13
  const once = require('lodash/once')
13
14
 
14
15
  const jsMainPath = appConfig.grayscale
@@ -348,6 +349,11 @@ module.exports = function getWebpackConfig(args, override) {
348
349
  resourceRegExp: /^\.\/locale$/,
349
350
  contextRegExp: /moment$/,
350
351
  }),
352
+ new RetryChunkLoadPlugin({
353
+ maxRetries: 3,
354
+ retryDelay: 300,
355
+ lastResortScript: `setTimeout(function() { window.location.reload(); }, 2000)`,
356
+ }),
351
357
  new webpack.DefinePlugin({
352
358
  'process.env.APP_NAME': JSON.stringify(appPkg.name),
353
359
  'process.env.APP_VERSION': JSON.stringify(appPkg.version),
@@ -1,6 +1,16 @@
1
1
  const WebpackDevServer = require('webpack-dev-server')
2
2
  const setupMockServer = require('./plugins/mock-server')
3
3
 
4
+ function createProxy(context, target, origin) {
5
+ const url = new URL(origin || target)
6
+ return {
7
+ context: [context],
8
+ target: target,
9
+ changeOrigin: true,
10
+ headers: { host: url.host, origin: url.origin, referer: url.origin },
11
+ }
12
+ }
13
+
4
14
  /**
5
15
  * @param {*} args
6
16
  * @param {import('../utils/defineConfig').Config} override
@@ -37,12 +47,7 @@ module.exports = function getWebpackDevServerConfig(args, override) {
37
47
  return middlewares
38
48
  },
39
49
  proxy: [
40
- {
41
- context: ['/api'],
42
- target: 'http://192.168.10.19:3339/qsxxwapdev',
43
- changeOrigin: true,
44
- headers: { host: 'www.zhidianbao.cn', origin: 'http://www.zhidianbao.cn' },
45
- },
50
+ createProxy('/api', 'http://192.168.10.19:3339/qsxxwapdev', 'http://www.zhidianbao.cn'),
46
51
  ],
47
52
  compress: true,
48
53
  }
@@ -52,13 +57,7 @@ module.exports = function getWebpackDevServerConfig(args, override) {
52
57
  devServer.proxy = [...override.proxy, ...devServer.proxy]
53
58
  } else if (typeof override.proxy === 'object') {
54
59
  const proxies = Object.entries(override.proxy).map(([context, target]) => {
55
- const url = new URL(target)
56
- return {
57
- context: [context],
58
- target: target,
59
- changeOrigin: true,
60
- headers: { host: url.host, origin: url.origin },
61
- }
60
+ return createProxy(context, target)
62
61
  })
63
62
  devServer.proxy = [...proxies, ...devServer.proxy]
64
63
  } else {