@qse/edu-scripts 1.12.3 → 1.12.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 +8 -0
- package/docs/override.md +34 -19
- package/docs/refactor.md +9 -0
- package/lib/config/webpackConfig.js +37 -23
- package/package.json +1 -1
- package/src/config/webpackConfig.js +41 -25
package/CHANGELOG.md
CHANGED
package/docs/override.md
CHANGED
|
@@ -59,8 +59,8 @@ const path = require('path')
|
|
|
59
59
|
|
|
60
60
|
module.exports = defineConfig({
|
|
61
61
|
alias: {
|
|
62
|
-
config: path.resolve(__dirname,'src/config')
|
|
63
|
-
}
|
|
62
|
+
config: path.resolve(__dirname, 'src/config'),
|
|
63
|
+
},
|
|
64
64
|
})
|
|
65
65
|
```
|
|
66
66
|
|
|
@@ -70,7 +70,7 @@ module.exports = defineConfig({
|
|
|
70
70
|
const { defineConfig } = require('@qse/edu-scripts')
|
|
71
71
|
|
|
72
72
|
module.exports = defineConfig({
|
|
73
|
-
pure_funcs: []
|
|
73
|
+
pure_funcs: [],
|
|
74
74
|
})
|
|
75
75
|
```
|
|
76
76
|
|
|
@@ -98,7 +98,7 @@ module.exports = defineConfig({
|
|
|
98
98
|
|
|
99
99
|
适用范围:antd-mobile@2, antd-mobile@5
|
|
100
100
|
|
|
101
|
-
安装公司内专用的 pxtorem 插件,比原版增加了 include 与 CSS变量 编译。并且修改默认值 `1rem === 10px`
|
|
101
|
+
安装公司内专用的 pxtorem 插件,比原版增加了 include 与 CSS 变量 编译。并且修改默认值 `1rem === 10px`
|
|
102
102
|
|
|
103
103
|
```bash
|
|
104
104
|
npm i @qse/postcss-pxtorem
|
|
@@ -106,14 +106,10 @@ npm i @qse/postcss-pxtorem
|
|
|
106
106
|
|
|
107
107
|
```js
|
|
108
108
|
const { defineConfig } = require('@qse/edu-scripts')
|
|
109
|
-
const pxtorem = require('@qse/postcss-pxtorem')
|
|
109
|
+
const pxtorem = require('@qse/postcss-pxtorem')
|
|
110
110
|
|
|
111
111
|
module.exports = defineConfig({
|
|
112
|
-
extraPostCSSPlugins: [
|
|
113
|
-
pxtorem({
|
|
114
|
-
include: ['antd-mobile']
|
|
115
|
-
})
|
|
116
|
-
]
|
|
112
|
+
extraPostCSSPlugins: [pxtorem({ include: ['antd-mobile'] })],
|
|
117
113
|
})
|
|
118
114
|
```
|
|
119
115
|
|
|
@@ -137,8 +133,7 @@ module.exports = defineConfig({
|
|
|
137
133
|
var maxFontSize = max / scale
|
|
138
134
|
}
|
|
139
135
|
|
|
140
|
-
docEl.style.fontSize =
|
|
141
|
-
Math.min((docEl.clientWidth / designWidth) * base, maxFontSize) + 'px'
|
|
136
|
+
docEl.style.fontSize = Math.min((docEl.clientWidth / designWidth) * base, maxFontSize) + 'px'
|
|
142
137
|
}
|
|
143
138
|
resize()
|
|
144
139
|
window.addEventListener('resize', resize)
|
|
@@ -154,12 +149,32 @@ module.exports = defineConfig({
|
|
|
154
149
|
const { defineConfig } = require('@qse/edu-scripts')
|
|
155
150
|
|
|
156
151
|
module.exports = defineConfig({
|
|
157
|
-
babel(config){
|
|
158
|
-
config.plugins.push([
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
152
|
+
babel(config) {
|
|
153
|
+
config.plugins.push(['import', { libraryName: 'antd-mobile', style: true }, 'antd-mobile'])
|
|
154
|
+
},
|
|
155
|
+
})
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### 兼容 antd-mobile@1
|
|
159
|
+
|
|
160
|
+
安装 `svg-sprite-loader` 模块,复制下面的代码
|
|
161
|
+
|
|
162
|
+
```shell
|
|
163
|
+
npm i svg-sprite-loader
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
```js
|
|
167
|
+
const { defineConfig } = require('@qse/edu-scripts')
|
|
168
|
+
module.exports = defineConfig({
|
|
169
|
+
webpack(config) {
|
|
170
|
+
config.module.rules[0].oneOf.unshift({
|
|
171
|
+
test: /\.svg$/,
|
|
172
|
+
loader: 'svg-sprite-loader',
|
|
173
|
+
options: {
|
|
174
|
+
esModule: false,
|
|
175
|
+
runtimeCompat: true,
|
|
176
|
+
},
|
|
177
|
+
})
|
|
178
|
+
},
|
|
164
179
|
})
|
|
165
180
|
```
|
package/docs/refactor.md
CHANGED
|
@@ -24,10 +24,19 @@
|
|
|
24
24
|
<script src="//www.zhidianbao.cn:8088/qsxxwapdev/edu-scripts/react-dev-preset.js"></script>
|
|
25
25
|
<script src="//www.zhidianbao.cn:8088/qsxxwapdev/edu-scripts/moment2.29.1.js"></script>
|
|
26
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>
|
|
27
32
|
<% } else { %>
|
|
28
33
|
<script src="//static.qsepay.net/lib/react16.14_fastclick1.0.6_natty-storage2.0.2-fetch2.4.2_axios0.21.1_common31.js"></script>
|
|
29
34
|
<script src="//static.qsepay.net/lib/moment2.29.1.js"></script>
|
|
30
35
|
<script src="//static.qsepay.net/lib/antd3.26.20.js"></script>
|
|
36
|
+
|
|
37
|
+
<!-- 如果你是主工程,需要下面这两个文件 -->
|
|
38
|
+
<script src="static/lib/qsb-antd.min.js"></script>
|
|
39
|
+
<script src="static/lib/qsb-scheme-render.min.js"></script>
|
|
31
40
|
<% } %>
|
|
32
41
|
```
|
|
33
42
|
|
|
@@ -34,23 +34,21 @@ const lessRegex = /\.less$/;
|
|
|
34
34
|
const lessModuleRegex = /\.module\.less$/;
|
|
35
35
|
const imageInlineSizeLimit = 10 * 1024;
|
|
36
36
|
|
|
37
|
-
const
|
|
37
|
+
const qseCDN = (() => {
|
|
38
38
|
const contents = paths.indexHTML.map(url => fs.readFileSync(url, 'utf-8'));
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const isUse = isUseAntd || isUseCommon || isUseMoment || isUseAxios || isUseQsbAntd || isUseQsbSchemeRender;
|
|
39
|
+
|
|
40
|
+
function include(pattern) {
|
|
41
|
+
const regexp = new RegExp(pattern);
|
|
42
|
+
return contents.some(content => regexp.test(content));
|
|
43
|
+
}
|
|
44
|
+
|
|
46
45
|
return {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
isUseQsbSchemeRender
|
|
46
|
+
isUseCommon: include(/react16.14.*_common31?.js|react-dev-preset.js/),
|
|
47
|
+
isUseAxios: include(/react16.14.*_axios0.21.1|react-dev-preset.js/),
|
|
48
|
+
isUseMoment: include('moment2.29.1.js'),
|
|
49
|
+
isUseAntd: include('antd3.26.20.js'),
|
|
50
|
+
isUseQsbAntd: include('qsb-antd.min.js'),
|
|
51
|
+
isUseQsbSchemeRender: include('qsb-scheme-render.min.js')
|
|
54
52
|
};
|
|
55
53
|
})();
|
|
56
54
|
/**
|
|
@@ -131,25 +129,41 @@ module.exports = function getWebpackConfig(args, override) {
|
|
|
131
129
|
uniqueName: appPkg.name,
|
|
132
130
|
publicPath: ''
|
|
133
131
|
},
|
|
134
|
-
externals: Object.assign({},
|
|
132
|
+
externals: Object.assign({}, qseCDN.isUseCommon && {
|
|
135
133
|
react: 'React',
|
|
136
134
|
'react-dom': 'ReactDOM',
|
|
137
135
|
'natty-fetch': 'nattyFetch',
|
|
138
136
|
'natty-storage': 'nattyStorage',
|
|
139
|
-
'common-utils': 'CommonUtils'
|
|
140
|
-
|
|
137
|
+
'common-utils': 'CommonUtils',
|
|
138
|
+
'@qse/common-utils': 'CommonUtils'
|
|
139
|
+
}, qseCDN.isUseAxios && {
|
|
141
140
|
axios: 'axios'
|
|
142
|
-
},
|
|
141
|
+
}, qseCDN.isUseMoment && {
|
|
143
142
|
moment: 'moment'
|
|
144
|
-
},
|
|
143
|
+
}, qseCDN.isUseAntd && Object.assign({
|
|
145
144
|
react: 'React',
|
|
146
145
|
'react-dom': 'ReactDOM',
|
|
147
146
|
moment: 'moment',
|
|
148
147
|
antd: 'antd'
|
|
149
|
-
},
|
|
148
|
+
}, qseCDN.isUseQsbAntd && {
|
|
150
149
|
'@qse/antd': 'qsbAntd',
|
|
151
150
|
'@qsb/antd': 'qsbAntd'
|
|
152
|
-
},
|
|
151
|
+
}, qseCDN.isUseQsbSchemeRender && {
|
|
152
|
+
'@qse/scheme-render': 'qsbSchemeRender',
|
|
153
|
+
'@qsb/scheme-render': 'qsbSchemeRender'
|
|
154
|
+
}), // 教育工程这些一定都需要 external
|
|
155
|
+
!appConfig.single && Object.assign({
|
|
156
|
+
react: 'React',
|
|
157
|
+
'react-dom': 'ReactDOM',
|
|
158
|
+
'natty-fetch': 'nattyFetch',
|
|
159
|
+
'natty-storage': 'nattyStorage',
|
|
160
|
+
'common-utils': 'CommonUtils',
|
|
161
|
+
'@qse/common-utils': 'CommonUtils',
|
|
162
|
+
moment: 'moment',
|
|
163
|
+
antd: 'antd'
|
|
164
|
+
}, isProd && {
|
|
165
|
+
'@qse/antd': 'qsbAntd',
|
|
166
|
+
'@qsb/antd': 'qsbAntd',
|
|
153
167
|
'@qse/scheme-render': 'qsbSchemeRender',
|
|
154
168
|
'@qsb/scheme-render': 'qsbSchemeRender'
|
|
155
169
|
}), override.externals),
|
|
@@ -291,7 +305,7 @@ module.exports = function getWebpackConfig(args, override) {
|
|
|
291
305
|
}].filter(Boolean)
|
|
292
306
|
}]
|
|
293
307
|
},
|
|
294
|
-
plugins: [
|
|
308
|
+
plugins: [qseCDN.isUseCommon && new webpack.DllReferencePlugin({
|
|
295
309
|
manifest: require('../asset/dll/libcommon3-manifest.json')
|
|
296
310
|
}), new webpack.IgnorePlugin({
|
|
297
311
|
resourceRegExp: /^\.\/locale$/,
|
package/package.json
CHANGED
|
@@ -24,27 +24,21 @@ const lessModuleRegex = /\.module\.less$/
|
|
|
24
24
|
|
|
25
25
|
const imageInlineSizeLimit = 10 * 1024
|
|
26
26
|
|
|
27
|
-
const
|
|
27
|
+
const qseCDN = (() => {
|
|
28
28
|
const contents = paths.indexHTML.map((url) => fs.readFileSync(url, 'utf-8'))
|
|
29
|
-
const isUseCommon = contents.some((content) => /react16.14.*_common31?.js/.test(content))
|
|
30
|
-
const isUseAxios = contents.some((content) => /react16.14.*_axios0.21.1/.test(content))
|
|
31
|
-
const isUseMoment = contents.some((content) => content.includes('moment2.29.1.js'))
|
|
32
|
-
const isUseAntd = contents.some((content) => content.includes('antd3.26.20.js'))
|
|
33
|
-
const isUseQsbAntd = contents.some((content) => content.includes('qsb-antd.min.js'))
|
|
34
|
-
const isUseQsbSchemeRender = contents.some((content) =>
|
|
35
|
-
content.includes('qsb-scheme-render.min.js')
|
|
36
|
-
)
|
|
37
29
|
|
|
38
|
-
|
|
39
|
-
|
|
30
|
+
function include(pattern) {
|
|
31
|
+
const regexp = new RegExp(pattern)
|
|
32
|
+
return contents.some((content) => regexp.test(content))
|
|
33
|
+
}
|
|
34
|
+
|
|
40
35
|
return {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
isUseQsbSchemeRender,
|
|
36
|
+
isUseCommon: include(/react16.14.*_common31?.js|react-dev-preset.js/),
|
|
37
|
+
isUseAxios: include(/react16.14.*_axios0.21.1|react-dev-preset.js/),
|
|
38
|
+
isUseMoment: include('moment2.29.1.js'),
|
|
39
|
+
isUseAntd: include('antd3.26.20.js'),
|
|
40
|
+
isUseQsbAntd: include('qsb-antd.min.js'),
|
|
41
|
+
isUseQsbSchemeRender: include('qsb-scheme-render.min.js'),
|
|
48
42
|
}
|
|
49
43
|
})()
|
|
50
44
|
|
|
@@ -133,16 +127,17 @@ module.exports = function getWebpackConfig(args, override) {
|
|
|
133
127
|
},
|
|
134
128
|
externals: Object.assign(
|
|
135
129
|
{},
|
|
136
|
-
|
|
130
|
+
qseCDN.isUseCommon && {
|
|
137
131
|
react: 'React',
|
|
138
132
|
'react-dom': 'ReactDOM',
|
|
139
133
|
'natty-fetch': 'nattyFetch',
|
|
140
134
|
'natty-storage': 'nattyStorage',
|
|
141
135
|
'common-utils': 'CommonUtils',
|
|
136
|
+
'@qse/common-utils': 'CommonUtils',
|
|
142
137
|
},
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
138
|
+
qseCDN.isUseAxios && { axios: 'axios' },
|
|
139
|
+
qseCDN.isUseMoment && { moment: 'moment' },
|
|
140
|
+
qseCDN.isUseAntd &&
|
|
146
141
|
Object.assign(
|
|
147
142
|
{
|
|
148
143
|
react: 'React',
|
|
@@ -150,11 +145,32 @@ module.exports = function getWebpackConfig(args, override) {
|
|
|
150
145
|
moment: 'moment',
|
|
151
146
|
antd: 'antd',
|
|
152
147
|
},
|
|
153
|
-
|
|
148
|
+
qseCDN.isUseQsbAntd && {
|
|
154
149
|
'@qse/antd': 'qsbAntd',
|
|
155
150
|
'@qsb/antd': 'qsbAntd',
|
|
156
151
|
},
|
|
157
|
-
|
|
152
|
+
qseCDN.isUseQsbSchemeRender && {
|
|
153
|
+
'@qse/scheme-render': 'qsbSchemeRender',
|
|
154
|
+
'@qsb/scheme-render': 'qsbSchemeRender',
|
|
155
|
+
}
|
|
156
|
+
),
|
|
157
|
+
|
|
158
|
+
// 教育工程这些一定都需要 external
|
|
159
|
+
!appConfig.single &&
|
|
160
|
+
Object.assign(
|
|
161
|
+
{
|
|
162
|
+
react: 'React',
|
|
163
|
+
'react-dom': 'ReactDOM',
|
|
164
|
+
'natty-fetch': 'nattyFetch',
|
|
165
|
+
'natty-storage': 'nattyStorage',
|
|
166
|
+
'common-utils': 'CommonUtils',
|
|
167
|
+
'@qse/common-utils': 'CommonUtils',
|
|
168
|
+
moment: 'moment',
|
|
169
|
+
antd: 'antd',
|
|
170
|
+
},
|
|
171
|
+
isProd && {
|
|
172
|
+
'@qse/antd': 'qsbAntd',
|
|
173
|
+
'@qsb/antd': 'qsbAntd',
|
|
158
174
|
'@qse/scheme-render': 'qsbSchemeRender',
|
|
159
175
|
'@qsb/scheme-render': 'qsbSchemeRender',
|
|
160
176
|
}
|
|
@@ -311,7 +327,7 @@ module.exports = function getWebpackConfig(args, override) {
|
|
|
311
327
|
],
|
|
312
328
|
},
|
|
313
329
|
plugins: [
|
|
314
|
-
|
|
330
|
+
qseCDN.isUseCommon &&
|
|
315
331
|
new webpack.DllReferencePlugin({
|
|
316
332
|
manifest: require('../asset/dll/libcommon3-manifest.json'),
|
|
317
333
|
}),
|