@qse/edu-scripts 1.14.3 → 1.14.5

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,14 @@
1
1
  # 更新日志
2
2
 
3
+ ## 1.14.5 (2024-05-29)
4
+
5
+ - feat: start 增加 process.env.PORT
6
+ - fix: mock 文件夹只相应 .js .ts 文件
7
+
8
+ ## 1.14.4 (2024-05-11)
9
+
10
+ - feat: 打包时自动压缩图片
11
+
3
12
  ## 1.14.3 (2024-01-03)
4
13
 
5
14
  - fix: 修复 app.d.ts html 文件类型错误
package/docs/refactor.md CHANGED
@@ -21,14 +21,11 @@
21
21
 
22
22
  ```html
23
23
  <% if(process.env.NODE_ENV === 'development') { %>
24
- <script src="//www.zhidianbao.cn:8088/qsxxwapdev/edu-scripts/react-dev-preset.js"></script>
25
- <script src="//www.zhidianbao.cn:8088/qsxxwapdev/edu-scripts/moment2.29.1.js"></script>
26
- <script src="//www.zhidianbao.cn:8088/qsxxwapdev/edu-scripts/antd3.26.20.js"></script>
27
-
28
- <!-- 如果用到 @qse/antd -->
29
- <script src="//www.zhidianbao.cn:8088/qsxxwapdev/edu-scripts/qsb-antd.min.js"></script>
30
- <!-- 如果用到 @qse/scheme-render -->
31
- <script src="//www.zhidianbao.cn:8088/qsxxwapdev/edu-scripts/qsb-scheme-render.min.js"></script>
24
+ <script src="https://www.zhidianbao.cn:8443/qsxxwapdev/edu-scripts/react-dev-preset.js"></script>
25
+ <script src="https://www.zhidianbao.cn:8443/qsxxwapdev/edu-scripts/moment2.29.1.js"></script>
26
+ <script src="https://www.zhidianbao.cn:8443/qsxxwapdev/edu-scripts/antd3.26.20.js"></script>
27
+ <script src="https://registry.npmmirror.com/@qse/antd/latest/files/dist/qsb-antd.min.js"></script>
28
+ <script src="https://registry.npmmirror.com/@qse/scheme-render/latest/files/dist/qsb-scheme-render.min.js"></script>
32
29
  <% } else { %>
33
30
  <script src="//static.qsepay.net/lib/react16.14_fastclick1.0.6_natty-storage2.0.2-fetch2.4.2_axios0.21.1_common31.js"></script>
34
31
  <script src="//static.qsepay.net/lib/moment2.29.1.js"></script>
package/docs/static.md CHANGED
@@ -3,15 +3,11 @@
3
3
  ## 开发环境使用的静态资源
4
4
 
5
5
  ```html
6
- <script src="//www.zhidianbao.cn:8088/qsxxwapdev/edu-scripts/react-dev-preset.js"></script>
7
- <script src="//www.zhidianbao.cn:8088/qsxxwapdev/edu-scripts/moment2.29.1.js"></script>
8
- <script src="//www.zhidianbao.cn:8088/qsxxwapdev/edu-scripts/antd3.26.20.js"></script>
9
-
10
- <!-- 下方资源可能存在版本滞后 -->
11
- <!-- @qsb/antd @1.7.2 -->
12
- <script src="//www.zhidianbao.cn:8088/qsxxwapdev/edu-scripts/qsb-antd.min.js"></script>
13
- <!-- @qsb/scheme-render @1.2.3 -->
14
- <script src="//www.zhidianbao.cn:8088/qsxxwapdev/edu-scripts/qsb-scheme-render.min.js"></script>
6
+ <script src="https://www.zhidianbao.cn:8443/qsxxwapdev/edu-scripts/react-dev-preset.js"></script>
7
+ <script src="https://www.zhidianbao.cn:8443/qsxxwapdev/edu-scripts/moment2.29.1.js"></script>
8
+ <script src="https://www.zhidianbao.cn:8443/qsxxwapdev/edu-scripts/antd3.26.20.js"></script>
9
+ <script src="https://registry.npmmirror.com/@qse/antd/latest/files/dist/qsb-antd.min.js"></script>
10
+ <script src="https://registry.npmmirror.com/@qse/scheme-render/latest/files/dist/qsb-scheme-render.min.js"></script>
15
11
  ```
16
12
 
17
13
  ## 生产环境使用的静态资源
@@ -14,7 +14,7 @@ var mockCache = {};
14
14
  var isSetup = false;
15
15
  var setupMock = debounce(function setupMock2() {
16
16
  mockCache = {};
17
- const files = globby.sync(paths.mock);
17
+ const files = globby.sync(paths.mock, { expandDirectories: { extensions: ["js", "ts"] } });
18
18
  if (isSetup) {
19
19
  console.log(chalk.green("Mock files changed, reloaded"));
20
20
  } else {
@@ -10,6 +10,7 @@ var CaseSensitivePathsPlugin = require("case-sensitive-paths-webpack-plugin");
10
10
  var appPkg = require(paths.package);
11
11
  var appConfig = require("../utils/appConfig");
12
12
  var { ESBuildMinifyPlugin } = require("esbuild-loader");
13
+ var ImageMinimizerPlugin = require("image-minimizer-webpack-plugin");
13
14
  var jsMainPath = appConfig.grayscale ? `${appPkg.name}/beta/${appPkg.name}` : `${appPkg.name}/${appPkg.name}`;
14
15
  var assetPath = appConfig.grayscale ? `${appPkg.name}/beta/${appPkg.version}` : `${appPkg.name}/${appPkg.version}`;
15
16
  var cssRegex = /\.css$/;
@@ -356,6 +357,17 @@ module.exports = function getWebpackConfig(args, override) {
356
357
  optimization: {
357
358
  minimize: isProd && override.minify !== false,
358
359
  minimizer: [
360
+ override.minifyImage && new ImageMinimizerPlugin({
361
+ minimizer: {
362
+ implementation: ImageMinimizerPlugin.sharpMinify,
363
+ options: {
364
+ encodeOptions: {
365
+ // Your options for `sharp`
366
+ // https://sharp.pixelplumbing.com/api-output
367
+ }
368
+ }
369
+ }
370
+ }),
359
371
  override.minify === "esbuild" && new ESBuildMinifyPlugin({
360
372
  pure: override.pure_funcs ?? ["console.log"],
361
373
  drop: ["debugger"],
package/lib/start.js CHANGED
@@ -19,6 +19,7 @@ module.exports = async function start(args) {
19
19
  }
20
20
  process.env.WDS_SOCKET_PORT = port;
21
21
  args.port = port;
22
+ process.env.PORT = port;
22
23
  const compiler = webpack(getConfig(args));
23
24
  const devServer = new WebpackDevServer(compiler.options.devServer, compiler);
24
25
  devServer.start();
@@ -46,6 +46,11 @@ export type Config = {
46
46
  * @default 'esbuild'
47
47
  */
48
48
  minify?: boolean | 'terser' | 'esbuild';
49
+ /**
50
+ * 打包时压缩图片资源
51
+ * @default true
52
+ */
53
+ minifyImage?: boolean;
49
54
  /** 自定义全局参数 */
50
55
  define?: Record<string, any>;
51
56
  /**
@@ -3,6 +3,7 @@ var fs = require("fs");
3
3
  var paths = require("../config/paths");
4
4
  var defaultOverride = {
5
5
  transformNodeModules: true,
6
+ minifyImage: true,
6
7
  minify: "esbuild",
7
8
  proxy: [],
8
9
  extraPostCSSPlugins: []
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qse/edu-scripts",
3
- "version": "1.14.3",
3
+ "version": "1.14.5",
4
4
  "author": "Kinoko",
5
5
  "license": "MIT",
6
6
  "description": "教育工程化基础框架",
@@ -38,12 +38,12 @@
38
38
  "@babel/plugin-proposal-decorators": "~7.23.2",
39
39
  "@babel/plugin-transform-runtime": "~7.23.2",
40
40
  "@babel/preset-env": "~7.23.2",
41
- "@babel/preset-react": "~7.22.15",
41
+ "@babel/preset-react": "~7.23.2",
42
42
  "@babel/preset-typescript": "~7.23.2",
43
- "@babel/register": "~7.22.15",
43
+ "@babel/register": "~7.23.2",
44
44
  "@babel/runtime": "~7.23.2",
45
45
  "@pmmmwh/react-refresh-webpack-plugin": "^0.5.10",
46
- "@qse/ssh-sftp": "^1.0.0",
46
+ "@qse/ssh-sftp": "^1.0.1",
47
47
  "@svgr/webpack": "^8.0.1",
48
48
  "babel-loader": "^9.1.3",
49
49
  "babel-plugin-import": "^1.13.8",
@@ -61,6 +61,7 @@
61
61
  "globby": "^11.1.0",
62
62
  "gzip-size": "^6.0.0",
63
63
  "html-webpack-plugin": "^5.5.3",
64
+ "image-minimizer-webpack-plugin": "^3.0.0",
64
65
  "inquirer": "^8.2.5",
65
66
  "less": "^3.13.1",
66
67
  "less-loader": "^10.2.0",
@@ -80,6 +81,7 @@
80
81
  "recursive-readdir": "^2.2.3",
81
82
  "rimraf": "^3.0.2",
82
83
  "semver": "^7.5.4",
84
+ "sharp": "^0.32.0",
83
85
  "strip-ansi": "^6.0.1",
84
86
  "style-loader": "^3.3.3",
85
87
  "tailwindcss": "^3.3.3",
@@ -23,7 +23,7 @@ const setupMock = debounce(function setupMock() {
23
23
  // clean
24
24
  mockCache = {}
25
25
 
26
- const files = globby.sync(paths.mock)
26
+ const files = globby.sync(paths.mock, { expandDirectories: { extensions: ['js', 'ts'] } })
27
27
 
28
28
  if (isSetup) {
29
29
  console.log(chalk.green('Mock files changed, reloaded'))
@@ -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 ImageMinimizerPlugin = require("image-minimizer-webpack-plugin");
12
13
 
13
14
  const jsMainPath = appConfig.grayscale
14
15
  ? `${appPkg.name}/beta/${appPkg.name}`
@@ -381,6 +382,17 @@ module.exports = function getWebpackConfig(args, override) {
381
382
  optimization: {
382
383
  minimize: isProd && override.minify !== false,
383
384
  minimizer: [
385
+ override.minifyImage && new ImageMinimizerPlugin({
386
+ minimizer: {
387
+ implementation: ImageMinimizerPlugin.sharpMinify,
388
+ options: {
389
+ encodeOptions: {
390
+ // Your options for `sharp`
391
+ // https://sharp.pixelplumbing.com/api-output
392
+ },
393
+ },
394
+ },
395
+ }),
384
396
  override.minify === 'esbuild' &&
385
397
  new ESBuildMinifyPlugin({
386
398
  pure: override.pure_funcs ?? ['console.log'],
package/src/start.js CHANGED
@@ -25,6 +25,7 @@ module.exports = async function start(args) {
25
25
  }
26
26
  process.env.WDS_SOCKET_PORT = port
27
27
  args.port = port
28
+ process.env.PORT = port
28
29
 
29
30
  const compiler = webpack(getConfig(args))
30
31
  const devServer = new WebpackDevServer(compiler.options.devServer, compiler)
@@ -48,6 +48,11 @@ export type Config = {
48
48
  * @default 'esbuild'
49
49
  */
50
50
  minify?: boolean | 'terser' | 'esbuild'
51
+ /**
52
+ * 打包时压缩图片资源
53
+ * @default true
54
+ */
55
+ minifyImage?:boolean
51
56
  /** 自定义全局参数 */
52
57
  define?: Record<string, any>
53
58
  /**
@@ -4,6 +4,7 @@ const paths = require('../config/paths')
4
4
  /** @type {import('./defineConfig').Config} */
5
5
  const defaultOverride = {
6
6
  transformNodeModules: true,
7
+ minifyImage: true,
7
8
  minify: 'esbuild',
8
9
  proxy: [],
9
10
  extraPostCSSPlugins: [],