@qse/edu-scripts 1.13.2 → 1.13.4
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 +8 -0
- package/docs/override.md +10 -4
- package/docs/static.md +1 -1
- package/lib/auto-refactor.js +1 -18
- package/lib/build.js +1 -19
- package/lib/cli.js +4 -4
- package/lib/commit-dist.js +1 -21
- package/lib/config/babel.dependencies.js +3 -6
- package/lib/config/babel.js +3 -11
- package/lib/config/paths.js +0 -6
- package/lib/config/plugins/postcss-safe-area.js +1 -4
- package/lib/config/webpackConfig.js +14 -30
- package/lib/config/webpackDevServerConfig.js +2 -3
- package/lib/deploy.js +17 -41
- package/lib/generator.js +2 -25
- package/lib/index.js +0 -1
- package/lib/start.js +3 -11
- package/lib/utils/FileSizeReporter.js +8 -25
- package/lib/utils/appConfig.js +0 -11
- package/lib/utils/beforeStart.js +0 -18
- package/lib/utils/changeDeployVersion.js +6 -27
- package/lib/utils/defineConfig.d.ts +3 -3
- package/lib/utils/defineConfig.js +0 -1
- package/lib/utils/exec.js +0 -2
- package/lib/utils/getConfig.js +0 -9
- package/lib/utils/getOverride.js +2 -7
- package/package.json +36 -36
- package/src/build.js +1 -1
- package/src/config/webpackConfig.js +1 -1
|
@@ -1,23 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
const t = require('@babel/types');
|
|
4
|
-
|
|
5
4
|
const {
|
|
6
5
|
parse
|
|
7
6
|
} = require('@babel/parser');
|
|
8
|
-
|
|
9
7
|
const generate = require('@babel/generator').default;
|
|
10
|
-
|
|
11
8
|
const traverse = require('@babel/traverse').default;
|
|
12
|
-
|
|
13
9
|
const {
|
|
14
10
|
format
|
|
15
|
-
} = require('prettier');
|
|
16
|
-
|
|
11
|
+
} = require('prettier');
|
|
17
12
|
|
|
13
|
+
// ver.js 中定义模块的数组
|
|
18
14
|
const TARGET_IDENTIFIER_NAME = 'project_apiArr';
|
|
19
15
|
const MODULE_IDENTIFIER_NAME = 'module';
|
|
20
|
-
|
|
21
16
|
function changeDeployVersion(code, pkg) {
|
|
22
17
|
const {
|
|
23
18
|
name,
|
|
@@ -25,18 +20,16 @@ function changeDeployVersion(code, pkg) {
|
|
|
25
20
|
grayscale
|
|
26
21
|
} = pkg;
|
|
27
22
|
let ast;
|
|
28
|
-
|
|
29
23
|
try {
|
|
30
24
|
ast = parse(code);
|
|
31
25
|
} catch (error) {
|
|
32
26
|
throw new Error(`代码解析错误: ${error.message}`);
|
|
33
27
|
}
|
|
34
|
-
|
|
35
28
|
const keyName = grayscale ? 'grayscale' : 'main';
|
|
29
|
+
|
|
36
30
|
/**
|
|
37
31
|
* @return {babel.NodePath<t.VariableDeclarator> | undefined}
|
|
38
32
|
*/
|
|
39
|
-
|
|
40
33
|
function findTargetDeclarator(ast) {
|
|
41
34
|
let res;
|
|
42
35
|
traverse(ast, {
|
|
@@ -47,16 +40,14 @@ function changeDeployVersion(code, pkg) {
|
|
|
47
40
|
res = path;
|
|
48
41
|
}
|
|
49
42
|
}
|
|
50
|
-
|
|
51
43
|
});
|
|
52
44
|
return res;
|
|
53
45
|
}
|
|
46
|
+
|
|
54
47
|
/**
|
|
55
48
|
* @param {babel.NodePath<t.VariableDeclarator>} path
|
|
56
49
|
* @return {babel.NodePath<t.ObjectExpression> | undefined}
|
|
57
50
|
*/
|
|
58
|
-
|
|
59
|
-
|
|
60
51
|
function findModuleObject(path) {
|
|
61
52
|
let res;
|
|
62
53
|
path.traverse({
|
|
@@ -69,15 +60,13 @@ function changeDeployVersion(code, pkg) {
|
|
|
69
60
|
res = path;
|
|
70
61
|
}
|
|
71
62
|
}
|
|
72
|
-
|
|
73
63
|
});
|
|
74
64
|
return res;
|
|
75
65
|
}
|
|
66
|
+
|
|
76
67
|
/**
|
|
77
68
|
* @param {babel.NodePath<t.ObjectExpression>} path
|
|
78
69
|
*/
|
|
79
|
-
|
|
80
|
-
|
|
81
70
|
function modifyModuleVersion(path) {
|
|
82
71
|
let hasModify = false;
|
|
83
72
|
path.traverse({
|
|
@@ -87,9 +76,7 @@ function changeDeployVersion(code, pkg) {
|
|
|
87
76
|
hasModify = true;
|
|
88
77
|
}
|
|
89
78
|
}
|
|
90
|
-
|
|
91
79
|
});
|
|
92
|
-
|
|
93
80
|
if (!hasModify) {
|
|
94
81
|
path.node.properties.push(t.objectProperty(t.identifier(keyName), t.stringLiteral(version)));
|
|
95
82
|
}
|
|
@@ -97,36 +84,29 @@ function changeDeployVersion(code, pkg) {
|
|
|
97
84
|
/**
|
|
98
85
|
* @param {babel.NodePath<t.ObjectExpression>} path
|
|
99
86
|
*/
|
|
100
|
-
|
|
101
|
-
|
|
102
87
|
function deleteModuleComments(path) {
|
|
103
88
|
path.traverse({
|
|
104
89
|
ObjectExpression(path) {
|
|
105
90
|
delete path.node.leadingComments;
|
|
106
91
|
}
|
|
107
|
-
|
|
108
92
|
});
|
|
109
93
|
}
|
|
94
|
+
|
|
110
95
|
/**
|
|
111
96
|
* @param {babel.NodePath<t.VariableDeclarator>} path
|
|
112
97
|
*/
|
|
113
|
-
|
|
114
|
-
|
|
115
98
|
function addModuleToTarget(path) {
|
|
116
99
|
const elements = path.node.init.elements;
|
|
117
100
|
elements.splice(elements.length - 2, 0, t.objectExpression([t.objectProperty(t.identifier(MODULE_IDENTIFIER_NAME), t.stringLiteral(name)), t.objectProperty(t.identifier(keyName), t.stringLiteral(version))]));
|
|
118
101
|
}
|
|
119
|
-
|
|
120
102
|
const targetPath = findTargetDeclarator(ast);
|
|
121
103
|
if (!targetPath) throw new Error(`ver.js 不合规范,未找到参数 ${TARGET_IDENTIFIER_NAME}`);
|
|
122
104
|
const moduleObjPath = findModuleObject(targetPath);
|
|
123
|
-
|
|
124
105
|
if (moduleObjPath) {
|
|
125
106
|
modifyModuleVersion(moduleObjPath);
|
|
126
107
|
} else {
|
|
127
108
|
addModuleToTarget(targetPath);
|
|
128
109
|
}
|
|
129
|
-
|
|
130
110
|
deleteModuleComments(targetPath);
|
|
131
111
|
return format(generate(ast, {
|
|
132
112
|
minified: true
|
|
@@ -135,5 +115,4 @@ function changeDeployVersion(code, pkg) {
|
|
|
135
115
|
printWidth: 120
|
|
136
116
|
});
|
|
137
117
|
}
|
|
138
|
-
|
|
139
118
|
module.exports = changeDeployVersion;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Configuration } from 'webpack';
|
|
2
2
|
import type { Configuration as DevServerConfiguration, ProxyConfigArray } from 'webpack-dev-server';
|
|
3
|
-
export
|
|
3
|
+
export type BabelImportPlugin = [
|
|
4
4
|
'import',
|
|
5
5
|
{
|
|
6
6
|
libraryName: string;
|
|
@@ -10,11 +10,11 @@ export declare type BabelImportPlugin = [
|
|
|
10
10
|
},
|
|
11
11
|
string
|
|
12
12
|
];
|
|
13
|
-
export
|
|
13
|
+
export type BabelConfig = {
|
|
14
14
|
presets: any[];
|
|
15
15
|
plugins: (string | BabelImportPlugin | any[])[];
|
|
16
16
|
};
|
|
17
|
-
export
|
|
17
|
+
export type Config = {
|
|
18
18
|
webpack?: (config: Configuration) => Configuration | undefined;
|
|
19
19
|
devServer?: (config: DevServerConfiguration) => DevServerConfiguration | undefined;
|
|
20
20
|
babel?: (config: BabelConfig, type: 'src' | 'node_modules') => any | undefined;
|
package/lib/utils/exec.js
CHANGED
package/lib/utils/getConfig.js
CHANGED
|
@@ -1,30 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
const getWebpackConfig = require('../config/webpackConfig');
|
|
4
|
-
|
|
5
4
|
const getWebpackDevServerConfig = require('../config/webpackDevServerConfig');
|
|
6
|
-
|
|
7
5
|
const getOverride = require('./getOverride');
|
|
8
|
-
|
|
9
6
|
function getConfig(args) {
|
|
10
7
|
const override = getOverride();
|
|
11
8
|
let webpackConfig = getWebpackConfig(args, override);
|
|
12
|
-
|
|
13
9
|
if (override.webpack) {
|
|
14
10
|
webpackConfig = override.webpack(webpackConfig) || webpackConfig;
|
|
15
11
|
}
|
|
16
|
-
|
|
17
12
|
if (process.env.NODE_ENV === 'development') {
|
|
18
13
|
let devServerConfig = getWebpackDevServerConfig(args, override);
|
|
19
|
-
|
|
20
14
|
if (override.devServer) {
|
|
21
15
|
devServerConfig = override.devServer(devServerConfig) || devServerConfig;
|
|
22
16
|
}
|
|
23
|
-
|
|
24
17
|
webpackConfig.devServer = devServerConfig;
|
|
25
18
|
}
|
|
26
|
-
|
|
27
19
|
return webpackConfig;
|
|
28
20
|
}
|
|
29
|
-
|
|
30
21
|
module.exports = getConfig;
|
package/lib/utils/getOverride.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
const fs = require('fs');
|
|
4
|
-
|
|
5
4
|
const paths = require('../config/paths');
|
|
6
|
-
/** @type {import('./defineConfig').Config} */
|
|
7
|
-
|
|
8
5
|
|
|
6
|
+
/** @type {import('./defineConfig').Config} */
|
|
9
7
|
const defaultOverride = {
|
|
10
8
|
transformNodeModules: true,
|
|
11
9
|
minify: 'esbuild',
|
|
@@ -13,21 +11,18 @@ const defaultOverride = {
|
|
|
13
11
|
extraPostCSSPlugins: []
|
|
14
12
|
};
|
|
15
13
|
let override = null;
|
|
14
|
+
|
|
16
15
|
/**
|
|
17
16
|
* @return {import('./defineConfig').Config}
|
|
18
17
|
*/
|
|
19
|
-
|
|
20
18
|
module.exports = function getOverride() {
|
|
21
19
|
if (override) return override;
|
|
22
20
|
override = Object.assign({}, defaultOverride);
|
|
23
|
-
|
|
24
21
|
if (fs.existsSync(paths.override)) {
|
|
25
22
|
const userOverride = require(paths.override);
|
|
26
|
-
|
|
27
23
|
if (typeof userOverride !== 'object') throw new Error('格式错误,请使用 npx edu g override 生成文件');
|
|
28
24
|
Object.assign(override, userOverride);
|
|
29
25
|
}
|
|
30
|
-
|
|
31
26
|
if (override.minify === true) override.minify = defaultOverride.minify;
|
|
32
27
|
return override;
|
|
33
28
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qse/edu-scripts",
|
|
3
|
-
"version": "1.13.
|
|
3
|
+
"version": "1.13.4",
|
|
4
4
|
"author": "Kinoko",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "教育工程化基础框架",
|
|
@@ -34,66 +34,66 @@
|
|
|
34
34
|
"extends": "qsb-react"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@babel/core": "^7.
|
|
38
|
-
"@babel/plugin-proposal-decorators": "^7.
|
|
39
|
-
"@babel/plugin-transform-runtime": "^7.
|
|
40
|
-
"@babel/preset-env": "^7.
|
|
41
|
-
"@babel/preset-react": "^7.
|
|
42
|
-
"@babel/preset-typescript": "^7.
|
|
43
|
-
"@babel/runtime": "^7.
|
|
44
|
-
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.
|
|
37
|
+
"@babel/core": "^7.21.4",
|
|
38
|
+
"@babel/plugin-proposal-decorators": "^7.21.0",
|
|
39
|
+
"@babel/plugin-transform-runtime": "^7.21.4",
|
|
40
|
+
"@babel/preset-env": "^7.21.4",
|
|
41
|
+
"@babel/preset-react": "^7.18.6",
|
|
42
|
+
"@babel/preset-typescript": "^7.21.4",
|
|
43
|
+
"@babel/runtime": "^7.21.0",
|
|
44
|
+
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.10",
|
|
45
45
|
"@qse/ssh-sftp": "^1.0.0",
|
|
46
|
-
"@svgr/webpack": "^
|
|
47
|
-
"babel-loader": "^8.
|
|
48
|
-
"babel-plugin-import": "^1.13.
|
|
46
|
+
"@svgr/webpack": "^7.0.0",
|
|
47
|
+
"babel-loader": "^8.3.0",
|
|
48
|
+
"babel-plugin-import": "^1.13.6",
|
|
49
49
|
"case-sensitive-paths-webpack-plugin": "^2.4.0",
|
|
50
50
|
"chalk": "^4.1.2",
|
|
51
|
-
"css-loader": "^6.7.
|
|
52
|
-
"cssnano": "^5.1.
|
|
53
|
-
"esbuild-loader": "^2.
|
|
51
|
+
"css-loader": "^6.7.3",
|
|
52
|
+
"cssnano": "^5.1.15",
|
|
53
|
+
"esbuild-loader": "^2.21.0",
|
|
54
54
|
"file-loader": "^6.2.0",
|
|
55
55
|
"filesize": "^8.0.7",
|
|
56
56
|
"fs-extra": "^10.1.0",
|
|
57
57
|
"globby": "^11.1.0",
|
|
58
58
|
"gzip-size": "^6.0.0",
|
|
59
59
|
"html-webpack-plugin": "^5.5.0",
|
|
60
|
-
"inquirer": "^8.2.
|
|
60
|
+
"inquirer": "^8.2.5",
|
|
61
61
|
"less": "^3.13.1",
|
|
62
62
|
"less-loader": "^10.2.0",
|
|
63
63
|
"lodash": "^4.17.21",
|
|
64
|
-
"open": "^8.4.
|
|
65
|
-
"postcss": "^8.4.
|
|
64
|
+
"open": "^8.4.2",
|
|
65
|
+
"postcss": "^8.4.21",
|
|
66
66
|
"postcss-flexbugs-fixes": "^5.0.2",
|
|
67
67
|
"postcss-loader": "^6.2.1",
|
|
68
68
|
"postcss-momentum-scrolling": "^3.14.22",
|
|
69
69
|
"postcss-normalize": "^8.0.1",
|
|
70
|
-
"postcss-preset-env": "^7.
|
|
71
|
-
"prettier": "^2.
|
|
72
|
-
"prettier-plugin-tailwindcss": "^0.1.
|
|
70
|
+
"postcss-preset-env": "^7.8.3",
|
|
71
|
+
"prettier": "^2.8.7",
|
|
72
|
+
"prettier-plugin-tailwindcss": "^0.1.13",
|
|
73
73
|
"react-refresh": "^0.13.0",
|
|
74
|
-
"recursive-readdir": "^2.2.
|
|
74
|
+
"recursive-readdir": "^2.2.3",
|
|
75
75
|
"rimraf": "^3.0.2",
|
|
76
|
-
"semver": "^7.3.
|
|
76
|
+
"semver": "^7.3.8",
|
|
77
77
|
"strip-ansi": "^6.0.1",
|
|
78
|
-
"style-loader": "^3.3.
|
|
79
|
-
"tailwindcss": "^3.1
|
|
80
|
-
"terser-webpack-plugin": "
|
|
78
|
+
"style-loader": "^3.3.2",
|
|
79
|
+
"tailwindcss": "^3.3.1",
|
|
80
|
+
"terser-webpack-plugin": "~5.3.7",
|
|
81
81
|
"tmp": "^0.2.1",
|
|
82
|
-
"typescript": "^4.
|
|
82
|
+
"typescript": "^4.9.5",
|
|
83
83
|
"update-notifier": "^5.1.0",
|
|
84
84
|
"url-loader": "^4.1.1",
|
|
85
|
-
"webpack": "^5.
|
|
86
|
-
"webpack-bundle-analyzer": "^4.
|
|
87
|
-
"webpack-dev-server": "^4.
|
|
88
|
-
"yargs": "^17.
|
|
85
|
+
"webpack": "^5.78.0",
|
|
86
|
+
"webpack-bundle-analyzer": "^4.8.0",
|
|
87
|
+
"webpack-dev-server": "^4.13.2",
|
|
88
|
+
"yargs": "^17.7.1"
|
|
89
89
|
},
|
|
90
90
|
"devDependencies": {
|
|
91
91
|
"@types/fs-extra": "^9.0.13",
|
|
92
|
-
"@types/jest": "^28.1.
|
|
93
|
-
"@types/yargs": "^17.0.
|
|
94
|
-
"dumi": "^1.1.
|
|
95
|
-
"eslint-config-qsb-react": "^1.1.
|
|
96
|
-
"father-build": "^1.22.
|
|
92
|
+
"@types/jest": "^28.1.8",
|
|
93
|
+
"@types/yargs": "^17.0.24",
|
|
94
|
+
"dumi": "^1.1.50",
|
|
95
|
+
"eslint-config-qsb-react": "^1.1.1",
|
|
96
|
+
"father-build": "^1.22.5",
|
|
97
97
|
"jest": "^28.1.3"
|
|
98
98
|
}
|
|
99
99
|
}
|
package/src/build.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
process.env.NODE_ENV = 'production'
|
|
2
2
|
process.env.BABEL_ENV = 'production'
|
|
3
|
-
process.env.BROWSERSLIST = '>0.
|
|
3
|
+
process.env.BROWSERSLIST = '>0.2%, not dead, not op_mini all'
|
|
4
4
|
|
|
5
5
|
const webpack = require('webpack')
|
|
6
6
|
const chalk = require('chalk')
|
|
@@ -380,7 +380,7 @@ module.exports = function getWebpackConfig(args, override) {
|
|
|
380
380
|
drop: ['debugger'],
|
|
381
381
|
keepNames: false,
|
|
382
382
|
legalComments: 'none',
|
|
383
|
-
target: '
|
|
383
|
+
target: 'es6',
|
|
384
384
|
}),
|
|
385
385
|
// This is only used in production mode
|
|
386
386
|
override.minify === 'terser' &&
|