@qse/edu-scripts 1.12.0

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.
Files changed (85) hide show
  1. package/CHANGELOG.md +333 -0
  2. package/README.md +105 -0
  3. package/app.d.ts +68 -0
  4. package/docs/changelog.md +5 -0
  5. package/docs/deploy.md +53 -0
  6. package/docs/feat.md +74 -0
  7. package/docs/grayscale.md +31 -0
  8. package/docs/index.md +5 -0
  9. package/docs/mode.md +42 -0
  10. package/docs/override.md +165 -0
  11. package/docs/refactor-react-16.md +40 -0
  12. package/docs/refactor.md +139 -0
  13. package/jest.config.js +195 -0
  14. package/lib/asset/dll/libcommon3-manifest.json +181 -0
  15. package/lib/asset/template/edu-app-env.d.ts.tpl +15 -0
  16. package/lib/asset/template/edu-scripts.override.js.tpl +14 -0
  17. package/lib/asset/template/page/index.class.js.tpl +24 -0
  18. package/lib/asset/template/page/index.class.tsx.tpl +10 -0
  19. package/lib/asset/template/page/index.fc.js.tpl +16 -0
  20. package/lib/asset/template/page/index.fc.tsx.tpl +9 -0
  21. package/lib/asset/template/page/index.less.tpl +3 -0
  22. package/lib/asset/template/page/logic.js.tpl +4 -0
  23. package/lib/asset/template/page/route.js.tpl +12 -0
  24. package/lib/asset/template/tailwind.config.js.tpl +11 -0
  25. package/lib/asset/template/tsconfig.json.tpl +24 -0
  26. package/lib/auto-refactor.js +175 -0
  27. package/lib/build.js +87 -0
  28. package/lib/cli.js +63 -0
  29. package/lib/commit-dist.js +117 -0
  30. package/lib/config/babel.dependencies.js +56 -0
  31. package/lib/config/babel.js +82 -0
  32. package/lib/config/paths.js +44 -0
  33. package/lib/config/plugins/postcss-safe-area.js +22 -0
  34. package/lib/config/webpackConfig.js +384 -0
  35. package/lib/config/webpackDevServerConfig.js +47 -0
  36. package/lib/deploy.js +186 -0
  37. package/lib/generator.js +155 -0
  38. package/lib/index.d.ts +1 -0
  39. package/lib/index.js +13 -0
  40. package/lib/start.js +51 -0
  41. package/lib/utils/FileSizeReporter.js +131 -0
  42. package/lib/utils/appConfig.js +44 -0
  43. package/lib/utils/beforeStart.js +73 -0
  44. package/lib/utils/changeDeployVersion.js +125 -0
  45. package/lib/utils/defineConfig.d.ts +59 -0
  46. package/lib/utils/defineConfig.js +10 -0
  47. package/lib/utils/exec.js +13 -0
  48. package/lib/utils/getConfig.js +30 -0
  49. package/lib/utils/getOverride.js +33 -0
  50. package/package.json +102 -0
  51. package/src/asset/dll/libcommon3-manifest.json +181 -0
  52. package/src/asset/template/edu-app-env.d.ts.tpl +15 -0
  53. package/src/asset/template/edu-scripts.override.js.tpl +14 -0
  54. package/src/asset/template/page/index.class.js.tpl +24 -0
  55. package/src/asset/template/page/index.class.tsx.tpl +10 -0
  56. package/src/asset/template/page/index.fc.js.tpl +16 -0
  57. package/src/asset/template/page/index.fc.tsx.tpl +9 -0
  58. package/src/asset/template/page/index.less.tpl +3 -0
  59. package/src/asset/template/page/logic.js.tpl +4 -0
  60. package/src/asset/template/page/route.js.tpl +12 -0
  61. package/src/asset/template/tailwind.config.js.tpl +11 -0
  62. package/src/asset/template/tsconfig.json.tpl +24 -0
  63. package/src/auto-refactor.js +172 -0
  64. package/src/build.js +74 -0
  65. package/src/cli.js +91 -0
  66. package/src/commit-dist.js +103 -0
  67. package/src/config/babel.dependencies.js +65 -0
  68. package/src/config/babel.js +88 -0
  69. package/src/config/paths.js +37 -0
  70. package/src/config/plugins/postcss-safe-area.js +21 -0
  71. package/src/config/webpackConfig.js +410 -0
  72. package/src/config/webpackDevServerConfig.js +44 -0
  73. package/src/deploy.js +158 -0
  74. package/src/generator.js +138 -0
  75. package/src/index.ts +1 -0
  76. package/src/start.js +46 -0
  77. package/src/utils/FileSizeReporter.js +144 -0
  78. package/src/utils/appConfig.js +35 -0
  79. package/src/utils/beforeStart.js +66 -0
  80. package/src/utils/changeDeployVersion.js +115 -0
  81. package/src/utils/defineConfig.ts +63 -0
  82. package/src/utils/exec.js +7 -0
  83. package/src/utils/getConfig.js +26 -0
  84. package/src/utils/getOverride.js +32 -0
  85. package/tsconfig.json +31 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,333 @@
1
+ # 更新日志
2
+
3
+ ## 1.12.0 (2022-09-28)
4
+
5
+ - chore: 修改组织名 @qse,发布公网
6
+
7
+ ## 1.11.44 (2022-09-21)
8
+
9
+ - feat: 增加 postcss-safe-area 插件,适配 env
10
+
11
+ ## 1.11.43 (2022-09-07)
12
+
13
+ - feat: 增加 postcss-momentum-scrolling 插件,为所有 `overflow: auto/scroll` 自动增加 `-webkit-overflow-scrolling: touch`
14
+
15
+ ## 1.11.42 (2022-09-03)
16
+
17
+ - fix: deploy 读取 ssh-sftp 错误
18
+
19
+ ## 1.11.41 (2022-09-02)
20
+
21
+ - feat: start 增加 --open 参数
22
+ - feat: webpack-dev-server 显示 overlay
23
+
24
+ ## 1.11.40 (2022-08-17)
25
+
26
+ - refactor: 内部 externals 逻辑重构
27
+ - feat: 启用 filesystem cache
28
+ - feat: 显示编译时间
29
+
30
+ ## 1.11.39 (2022-08-17)
31
+
32
+ - fix: proxy 顺序调整,用户配置更优先
33
+
34
+ ## 1.11.38 (2022-08-09)
35
+
36
+ - refactor: 成功修改 ver.js 后再进行备份,教育工程上传时忽略 ver.js
37
+
38
+ ## 1.11.37 (2022-08-04)
39
+
40
+ - refactor: 主工程打包不复制 public,改成复制 public/static
41
+ - feat: deploy 修改 ver.js 前做个备份
42
+
43
+ ## 1.11.36 (2022-08-03)
44
+
45
+ - refactor: 重构 CDN 判断
46
+ - refactor: 修改 auto-refactor 提示语,执行完后自动打开文档页面
47
+ - docs: 增加 react16 升级指南
48
+
49
+ ## 1.11.35 (2022-08-01)
50
+
51
+ - feat: override 增加 extraPostCSSPlugins 参数
52
+
53
+ ## 1.11.34 (2022-07-27)
54
+
55
+ - fix: 修复 globby 匹配失败
56
+
57
+ ## 1.11.33 (2022-07-26)
58
+
59
+ - feat: @svgr/webpack 移除 ref 配置项, 这个修改让框架不再依赖 react16
60
+
61
+ ## 1.11.32 (2022-07-19)
62
+
63
+ - refactor: build 从复制 public/static 改成复制 public 文件夹。[差异化看这里](/mode)
64
+
65
+ ## 1.11.31 (2022-07-15)
66
+
67
+ - refactor: glob to globby
68
+
69
+ ## 1.11.30 (2022-07-15)
70
+
71
+ - refactor: 重构 auto-refactor,使用 promise 替换 sync
72
+
73
+ ## 1.11.29 (2022-07-15)
74
+
75
+ - fix: extensions add .web.js
76
+
77
+ ## 1.11.28 (2022-07-13)
78
+
79
+ - fix: 修复 override proxy 默认值错误
80
+
81
+ ## 1.11.27 (2022-07-12)
82
+
83
+ - refactor: 删除 react-error-overlay
84
+
85
+ ## 1.11.26 (2022-07-12)
86
+
87
+ - fix: override proxy 类型错误
88
+
89
+ ## 1.11.25 (2022-07-12)
90
+
91
+ - feat: override 增加 proxy,支持自定义接口代理
92
+
93
+ ## 1.11.24 (2022-07-12)
94
+
95
+ - refactor: dev-server proxt 改用 Array 形式
96
+
97
+ ## 1.11.23 (2022-07-12)
98
+
99
+ - feat: override 增加 define, 支持自定义参数
100
+
101
+ ## 1.11.22 (2022-07-08)
102
+
103
+ - chore: 更新 tailwindcss 模版
104
+ - chore: 删除无用的依赖
105
+ - chore: 更新 eslint-config-qsb-react 版本
106
+
107
+ ## 1.11.21 (2022-07-04)
108
+
109
+ - chore: 增加 rimraf 依赖
110
+
111
+ ## 1.11.20 (2022-06-14)
112
+
113
+ - feat: 增加 @types/tailwindcss 依赖,更新 tailwindcss 模版
114
+
115
+ ## 1.11.19 (2022-06-13)
116
+
117
+ - chore: 升级依赖版本
118
+
119
+ ## 1.11.18 (2022-06-08)
120
+
121
+ - fix: 移除 webpack resolve modules 配置
122
+
123
+ ## 1.11.17 (2022-06-08)
124
+
125
+ - fix: 修改 webpack resolve modules 配置
126
+
127
+ ## 1.11.16 (2022-06-07)
128
+
129
+ - fix: 使用 postcss-preset-env 默认 [stage](https://preset-env.cssdb.org/features/#stage-2)
130
+
131
+ ## 1.11.15 (2022-05-24)
132
+
133
+ - chore: 增加 prettier `tailwindcss` 插件
134
+
135
+ ## 1.11.14 (2022-05-24)
136
+
137
+ - chore: 删除 prettier `组织 import` 插件
138
+
139
+ ## 1.11.13 (2022-05-24)
140
+
141
+ - feat: prettier 增加 `组织 import` 插件
142
+ - feat: generator tailwindcss 时候提示安装 `prettier-plugin-tailwindcss` 插件
143
+ - chore: 添加 typescript 到依赖
144
+
145
+ ## 1.11.12 (2022-05-24)
146
+
147
+ - fix: 修复 react-error-overlay 报错 `process is not defined`
148
+
149
+ ## 1.11.11 (2022-05-24)
150
+
151
+ - feat: 增加两个环境变量 `process.env.APP_NAME` `process.env.APP_VERSION`
152
+
153
+ ## 1.11.10 (2022-05-20)
154
+
155
+ - feat: auto-refactor 增加模式选择
156
+ - refactor: 增加 qsb CDN 判断,自动 external 对应的模块
157
+
158
+ ## 1.11.9 (2022-05-17)
159
+
160
+ - fix: auto-refactor scripts typo
161
+
162
+ ## 1.11.8 (2022-05-12)
163
+
164
+ - feat: commit-dist 显示正在提交的信息
165
+
166
+ ## 1.11.7 (2022-05-06)
167
+
168
+ - feat: auto-refactor 命令适配公文
169
+ - fix: 修复 commit-dist 获取 info 记录错误
170
+
171
+ ## 1.11.6 (2022-05-05)
172
+
173
+ - feat: 增加 commit-dist 命令
174
+
175
+ ## 1.11.5 (2022-04-25)
176
+
177
+ - chore: 删除无用的 ofd.js 特殊规则
178
+ - feat: 更新 @qsb/ssh-sftp 和 react-refresh
179
+
180
+ ## 1.11.4 (2022-04-25)
181
+
182
+ - feat: 使用 esbuild 压缩代码,它比 terser 快 20-40 倍,实际压缩率差 10%左右。[Benchmarks](https://github.com/privatenumber/minification-benchmarks)
183
+ - feat: override 增加 minify 选项
184
+
185
+ ## 1.11.3 (2022-04-18)
186
+
187
+ - feat: override 增加 transformNodeModules 配置
188
+ - feat: 优化 override webpack/babel 的返回值
189
+
190
+ ## 1.11.2 (2022-04-15)
191
+
192
+ - feat: override 增加 babel 配置
193
+ - refactor: 移除 lodash alias, 增加 babel-plugin-import lodash
194
+
195
+ ## 1.11.1 (2022-04-14)
196
+
197
+ - fix: 教育集成模式不使用 `@babel/preset-react automatic mode`
198
+
199
+ ## 1.11.0 (2022-04-12)
200
+
201
+ - chore: 调整适配,默认编译 node_modules 所有文件
202
+
203
+ ## 1.10.6 (2022-04-09)
204
+
205
+ - feat: 增加 `generator tailwind` 命令
206
+ - feat: 可配置是否清理 `console.log`
207
+ - fix: 修复 `https:` 协议启动失败
208
+ - refactor: 重构 `babel` 相关配置
209
+
210
+ ## 1.10.5 (2022-03-31)
211
+
212
+ - fix: `@babel/preset-react` change runtime to `automatic`
213
+ - refactor: 移除 `cache: 'filesystem'` 设置
214
+
215
+ ## 1.10.4 (2022-03-29)
216
+
217
+ - feat: 支持 `tailwindcss`
218
+ - revert: feat: `@babel/preset-react` change runtime to `automatic`
219
+
220
+ ## 1.10.3 (2022-03-29)
221
+
222
+ - feat: 打包不再生成 LICENSE 文件
223
+
224
+ ## 1.10.2 (2022-03-25)
225
+
226
+ - feat: 重构 override 功能
227
+ - feat: `@babel/preset-react` change runtime to `automatic`
228
+
229
+ ## 1.10.1 (2022-03-15)
230
+
231
+ - feat: 增加部署到公文
232
+
233
+ ## 1.10.0 (2022-03-12)
234
+
235
+ - fix: 修复自动部署失败
236
+ - fix: 修复自动删除失败
237
+
238
+ ## 1.9.4 (2022-03-11)
239
+
240
+ - feat: 自动删除教育集成模式下 public/static 文件夹。
241
+ - refactor: 重构 edu 配置项,single/mainProject 合并成 mode
242
+
243
+ ## 1.9.3 (2022-02-23)
244
+
245
+ - chore: 更换 ssh-sftp 包
246
+
247
+ ## 1.9.2 (2022-02-23)
248
+
249
+ - feat: webpack cache 改成 `filesystem`
250
+
251
+ ## 1.9.1 (2022-02-11)
252
+
253
+ - feat: 增加 `css` 压缩
254
+
255
+ ## 1.9.0 (2022-02-11)
256
+
257
+ - feat: 增加默认的环境变量,完善 `ts` 声明
258
+ - feat: `generator ts` 生成 `edu-app-env.d.ts` 文件
259
+ - feat: 修改 `postcss` 配置
260
+ - feat: 支持 `*.module.(css|less)` 文件,导出 `local` 样式
261
+ - feat: 开发时启用样式文件 `sourceMap`
262
+
263
+ ## 1.8.1 (2022-01-25)
264
+
265
+ - feat: 自动换端口增加一个提示语
266
+
267
+ ## 1.8.0 (2022-01-19)
268
+
269
+ - refactor: 重构标识符,全部归类到 `edu` 字段中
270
+ - feat: 增加[主工程标识符](/mode),限制教育模式子工程上传文件种类
271
+
272
+ ## 1.7.1 (2022-01-18)
273
+
274
+ - feat: `patch` 迭代将不再强制更新
275
+ - fix: 修复 `webpack-dev-server` 类型文件错误,移除 `@types/webpack-dev-server` 依赖
276
+
277
+ ## 1.7.0 (2022-01-13)
278
+
279
+ - feat: 增加端口重试,默认 `3000` 端口
280
+ - feat: 增加[独立项目模式](/mode)
281
+ - feat: 默认热加载地址切换成 `ipv4` 地址
282
+ - feat: 打包复制 `public/static` 内容
283
+ - feat: `svg` 增加模块导出方式,`css` 中会导出 `dataURI`,`js` 中会默认导出 `dataURI` 并额外导出 `ReactComponent`
284
+ - refactor: 重构 generator page 命令,`page <moudleName>` 改成 `page --name`
285
+ - fix: 修复 `react-error-overlay` 无法响应 `webpack:` 协议
286
+ - fix: 更新 `webpack-dev-server`,修复 `onBeforeSetupMiddleware` deprecated 警告
287
+
288
+ ## 1.6.0 (2021-12-21)
289
+
290
+ - feat: 增加[灰度测试](/grayscale)适配
291
+
292
+ ## 1.5.0 (2021-12-14)
293
+
294
+ - feat: 增加 `style` 标签属性,标记对应 `module` 与 `version`,方便排查样式污染
295
+ - feat: 增加 `generator ts` 指令,用于生成 `tsconfig.json` 文件
296
+ - refactor: 移除 `WebpackBar` 插件,使用 `webpack.ProgressPlugin`
297
+ - chore: 固定 `react-error-overlay` 版本号
298
+
299
+ ## 1.4.0 (2021-11-23)
300
+
301
+ - feat: 增加 `edu-scripts` 别名 `edu`
302
+ - feat: 增加 `generator` 功能,自动生成模版代码
303
+ - refactor: 移动 `override` 功能到 `generator` 下
304
+
305
+ ## 1.3.3 (2021-11-05)
306
+
307
+ - feat: 适配 `ofd.js` 与 `pdfjs-dist`
308
+
309
+ ## 1.3.2 (2021-11-03)
310
+
311
+ - feat: 增加 `--transform-node-modules` flag,支持编译 `node_modules` 下的代码
312
+
313
+ ## 1.3.1 (2021-11-03)
314
+
315
+ - fix: 时刻保持更新
316
+
317
+ ## 1.3.0 (2021-11-02)
318
+
319
+ - feat: 增加 `react-error-overlay`, 支持报错跳转到编辑器
320
+
321
+ ## 1.2.4 (2021-10-30)
322
+
323
+ - feat: 优化 FileSizeReport 显示顺序
324
+ - feat: 调整 splitChunks 策略
325
+ - docs: 完善接入文档与错误处理
326
+
327
+ ## 1.2.3 (2021-10-29)
328
+
329
+ - feat: alias lodash to lodash-es
330
+
331
+ ## 1.2.2 (2021-10-29)
332
+
333
+ - fix: 修复 `update-notifier` 不起作用
package/README.md ADDED
@@ -0,0 +1,105 @@
1
+ # 教育工程化基础框架
2
+
3
+ svn://192.168.10.168/edu/code/A0.New-system/0A2.front-end-component/edu-scripts/trunk
4
+
5
+ ## 运行条件
6
+
7
+ nodejs 版本至少 12+
8
+
9
+ ## 快速体验
10
+
11
+ 执行下面的命令,快速建立一个最小的应用模版,支持 [教育集成 与 独立项目模式](/mode)
12
+
13
+ ```shell
14
+ # npm 安装
15
+ npm create @qse/edu-app
16
+
17
+ # 或者 yarn 安装
18
+ yarn create @qse/edu-app
19
+
20
+ # 或者 pnpm 安装
21
+ pnpm create @qse/edu-app
22
+ ```
23
+
24
+ ## 安装
25
+
26
+ <Alert>第一次使用这个框架,请看<Link to="/refactor">老项目接入流程</Link></Alert>
27
+
28
+ ```shell
29
+ npm i @qse/edu-scripts -D
30
+ ```
31
+
32
+ ## 用法
33
+
34
+ `edu-scripts` 可以使用缩写 `edu`,在手写命令行时方便使用
35
+
36
+ ```shell
37
+ # 开发
38
+ edu-scripts start
39
+ # 开发指定端口 默认3000
40
+ edu-scripts start --port 5000
41
+
42
+ # 打包
43
+ edu-scripts build
44
+ # 打包并分析
45
+ edu-scripts build --analyze
46
+ # 打包并导出 html 文件
47
+ edu-scripts build --output-html
48
+
49
+ # 部署代码 校端
50
+ edu-scripts deploy -s
51
+ # 部署代码 局端
52
+ edu-scripts deploy -b
53
+ # 部署代码 公文端
54
+ edu-scripts deploy -d
55
+ # 部署代码 校端 + 局端 + 公文端
56
+ edu-scripts deploy -s -b -d
57
+
58
+ # 生成 override 文件
59
+ edu-scripts generator override
60
+ # 自动生成代码 可使用 npx edu-scripts generator page -h 查看具体效果
61
+ edu-scripts generator page --name <module-name>
62
+ # 生成 tailwind 配置
63
+ edu-scripts generator tailwind
64
+ # 生成 tsconfig 配置
65
+ edu-scripts generator ts
66
+
67
+ # SVN 提交 dist 到 dist 分支上
68
+ edu-scripts commit-dist
69
+ # SVN 提交 dist 到 dist 分支上,并且删除本地 dist
70
+ edu-scripts commit-dist --rm-local
71
+ ```
72
+
73
+ ## ENV 环境变量
74
+
75
+ | 参数 | 默认值 | 说明 |
76
+ | ------- | ------ | ------------ |
77
+ | PORT | 3000 | 启动端口 |
78
+ | ANALYZE | false | 开启打包分析 |
79
+
80
+ ## 自定义配置
81
+
82
+ ```shell
83
+ # 创建 edu-scripts.override.js 文件
84
+ npx edu-scripts g override
85
+ ```
86
+
87
+ 具体看[override](/override)
88
+
89
+ ### 自定义 antd 样式
90
+
91
+ 如果不需要,可以跳过
92
+
93
+ 根目录生成 `theme.js` 或 `theme.json`
94
+
95
+ ```js
96
+ module.exports = {
97
+ '@primary-color': '#99f',
98
+ }
99
+ ```
100
+
101
+ ```json
102
+ {
103
+ "@primary-color": "#99f"
104
+ }
105
+ ```
package/app.d.ts ADDED
@@ -0,0 +1,68 @@
1
+ declare namespace NodeJS {
2
+ interface ProcessEnv {
3
+ readonly NODE_ENV: 'development' | 'production'
4
+ readonly APP_NAME: string
5
+ readonly APP_VERSION: string
6
+ }
7
+ }
8
+
9
+ declare module '*.avif' {
10
+ const src: string
11
+ export default src
12
+ }
13
+
14
+ declare module '*.bmp' {
15
+ const src: string
16
+ export default src
17
+ }
18
+
19
+ declare module '*.html' {
20
+ const src: string
21
+ export default src
22
+ }
23
+
24
+ declare module '*.gif' {
25
+ const src: string
26
+ export default src
27
+ }
28
+
29
+ declare module '*.jpg' {
30
+ const src: string
31
+ export default src
32
+ }
33
+
34
+ declare module '*.jpeg' {
35
+ const src: string
36
+ export default src
37
+ }
38
+
39
+ declare module '*.png' {
40
+ const src: string
41
+ export default src
42
+ }
43
+
44
+ declare module '*.webp' {
45
+ const src: string
46
+ export default src
47
+ }
48
+
49
+ declare module '*.svg' {
50
+ import * as React from 'react'
51
+
52
+ export const ReactComponent: React.FunctionComponent<
53
+ React.SVGProps<SVGSVGElement> & { title?: string }
54
+ >
55
+
56
+ const src: string
57
+ export default src
58
+ }
59
+
60
+ declare module '*.module.css' {
61
+ const classes: { readonly [key: string]: string }
62
+ export default classes
63
+ }
64
+
65
+ declare module '*.less' {
66
+ const classes: { readonly [key: string]: string }
67
+ export default classes
68
+ }
@@ -0,0 +1,5 @@
1
+ ---
2
+ title: 更新日志
3
+ ---
4
+
5
+ <embed src="../CHANGELOG.md" />
package/docs/deploy.md ADDED
@@ -0,0 +1,53 @@
1
+ # 部署 v1
2
+
3
+ 项目使用 [@qse/ssh-sftp][1] 部署代码到 v1 环境
4
+
5
+ ## 教育模式
6
+
7
+ 支持 局端/校端/公文 部署。无需额外的配置即可使用
8
+
9
+ ```bash
10
+ # 局端
11
+ npx edu-scripts deploy -b
12
+
13
+ # 校端
14
+ npx edu-scripts deploy -s
15
+
16
+ # 公文
17
+ npx edu-scripts deploy -d
18
+ ```
19
+
20
+ ## 独立模式
21
+
22
+ ### 默认部署
23
+
24
+ 默认会部署到 `/qsxxwapdev/${package.name}` 路径下
25
+
26
+ ```bash
27
+ npx edu-scripts deploy
28
+ ```
29
+
30
+ ### 自定义部署
31
+
32
+ 自定义配置部署路径
33
+
34
+ ```bash
35
+ # 生成配置文件
36
+ npx ssh-sftp init
37
+ ```
38
+
39
+ 编辑配置文件
40
+
41
+ ```json
42
+ {
43
+ "preset": {
44
+ "context": "qsxxwapdev"
45
+ }
46
+ }
47
+ ```
48
+
49
+ 可以使用预设配置,`npx ssh-sftp show-config` 查看最终的配置
50
+
51
+ 其余配置请看 [@qse/ssh-sftp][1]
52
+
53
+ [1]: http://www.zhidianbao.cn:8088/qsxxwapdev/edu-ssh-sftp/
package/docs/feat.md ADDED
@@ -0,0 +1,74 @@
1
+ # 特性
2
+
3
+ ## svg 模块导出
4
+
5
+ 默认导出 `dataURI`,额外导出 `ReactComponent`
6
+
7
+ 两种使用方式是相同的
8
+
9
+ ```tsx | pure
10
+ import logoURI, { ReactComponent as Logo } from './logo.svg'
11
+
12
+ export default () => (
13
+ <>
14
+ <img src={logoURI} />
15
+ <Logo />
16
+ </>
17
+ )
18
+ ```
19
+
20
+ ## 复制 public 文件
21
+
22
+ `edu-scripts build` 会复制 `public` 或 `public/static` 文件到 `dist` 中
23
+
24
+ 教育子工程不会复制
25
+
26
+ ## 支持 typescript
27
+
28
+ 如果要开启 typescrit,只需要运行 `npx edu g ts`
29
+
30
+ ## 生成页面模版
31
+
32
+ 可以自动生成页面模版
33
+
34
+ 运行 `npx edu g page -h` 查看详细信息
35
+
36
+ ## 支持[自定义配置](/override)
37
+
38
+ 运行 `npx edu g override` 生成控制文件
39
+
40
+ ## 自动根据 qsb 的 CDN 调整内部配置
41
+
42
+ 根据 `public/*.html` 文件里的 CDN 按需自动配置 externals 与 dll
43
+
44
+ ### CDN 匹配关键字
45
+
46
+ `/react16.14.*_common31?.js/`
47
+
48
+ - external: `react`, `react-dom`, `natty-fetch`, `natty-store`, `common-utils`
49
+ - 添加内置的 dll 文件
50
+
51
+ `/react16.14.*_axios0.21.1/`
52
+
53
+ - external: `react`, `react-dom`, `natty-fetch`, `natty-store`, `common-utils`, `axios`
54
+
55
+ `moment2.29.1.js`
56
+
57
+ - external: `moment`
58
+
59
+ `antd3.26.20.js`
60
+
61
+ - development external: `react`, `react-dom`, `moment`, `antd`
62
+ - production external:
63
+ - 教育模式 `react`, `react-dom`, `moment`, `antd`, `@qse/antd`, `@qse/scheme-render`
64
+ - 独立模式 `react`, `react-dom`, `moment`, `antd`
65
+
66
+ ## 支持 tailwindcss
67
+
68
+ 如果要开启 tailwindcss,只需要运行 `npx edu g tailwind`
69
+
70
+ ## PostCSS
71
+
72
+ 预处理很多样式[兼容性问题](https://preset-env.cssdb.org/features/#stage-2)
73
+
74
+ 为所有 `overflow: auto/scroll` 自动增加 `-webkit-overflow-scrolling: touch`
@@ -0,0 +1,31 @@
1
+ # 灰度测试
2
+
3
+ ## 开启灰度测试
4
+
5
+ ### PC 端
6
+
7
+ 前端只要在 `package.json` 文件中加入 `grayscale` 字段即可
8
+
9
+ ```json
10
+ {
11
+ "name": "模块名称",
12
+ "edu": { "grayscale": true }
13
+ }
14
+ ```
15
+
16
+ 此时打包出来的模块就成了灰度测试用的模块,会部署到指定的目录下,主工程会处理调度问题
17
+
18
+ 模块名称可与运维讨论
19
+
20
+ 后端接口会由 `nginx` 处理,前端不需要关注
21
+
22
+ ### H5 端
23
+
24
+ h5 与 pc 是完全不同的方案,前端是需要将代码部署到两个地方。
25
+
26
+ `/project-name` 与 `/beta_project-name`。第二个名字需要去问运维要
27
+
28
+ #### 流程
29
+
30
+ 1. 访问 `/qsxxwapdev/project-name/index.html`
31
+ 2. 网关拦截 `index.html` 请求,并根据后台灰度配置进行分流,分别进入`/qsxxwapdev/project-name/index1.html` 与 `/qsxxwapdev/beta_project-name/index1.html`
package/docs/index.md ADDED
@@ -0,0 +1,5 @@
1
+ ---
2
+ title: 教育工程化基础框架
3
+ ---
4
+
5
+ <embed src="../README.md" />
package/docs/mode.md ADDED
@@ -0,0 +1,42 @@
1
+ # 模式
2
+
3
+ 目前有三种模式:教育主工程模式,教育子工程模式,独立模式
4
+
5
+ ## 教育子工程模式
6
+
7
+ 默认情况下使用**教育子工程模式**,无需配置
8
+
9
+ ## 教育主工程模式
10
+
11
+ ### 启用
12
+
13
+ package.json 增加 mode 字段
14
+
15
+ ```json
16
+ {
17
+ "edu": { "mode": "main" }
18
+ }
19
+ ```
20
+
21
+ ## 独立项目模式
22
+
23
+ ### 启用
24
+
25
+ package.json 增加 mode 字段
26
+
27
+ ```json
28
+ {
29
+ "edu": { "mode": "single" }
30
+ }
31
+ ```
32
+
33
+ ## 共同
34
+
35
+ 请查看[特性](/feat)
36
+
37
+ ## 差异
38
+
39
+ | 差异点 | 子工程 | 主工程 | 独立 |
40
+ | ---------------------- | ---------------------------------------- | --------------------------------------------- | --------------------------------------------------------------------------------------- |
41
+ | 打包 build | 不复制 `public`,不导出 `html` 文件 | 复制 `public/static` 文件夹,导出 `html` 文件 | 复制 `public` 文件夹,导出 `html` 文件,且输出的 `output.filename` 会添加 `contenthash` |
42
+ | [部署 deploy](/deploy) | 只上传 `dist/js、dist/images` 两个文件夹 | 上传 `dist` | 同主工程 |