Skip to content

Commit 957f9fe

Browse files
committed
Chore: (release) 1.2.15
1 parent f5f19d4 commit 957f9fe

14 files changed

Lines changed: 607 additions & 462 deletions

File tree

.env

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,13 @@ SKIN=light
1515
# 皮肤全局(window)变量名
1616
SKIN_FIELD=s
1717

18-
# 全局查询字段(从访问地址查询参数获取, ajax带上该字段, 用于微服务调试指定目标)
18+
# ajax全局查询字段(正则)
1919
SEARCH_FIELD=_target\d+
2020

21-
# 路由配置别名 (json [ [别名, 目录, 分组(cli参数)], ... ])
22-
_ROUTES=[["@iRoute", "src/pages/index/config/route", ["iFoo", "iBar"]], ["@oRoute", "src/pages/other/config/route", ["oFoo", "oBar"]]]
21+
# 指定入口或通过cli命令(优先 --entries=foo,bar)指定,逗号分隔
22+
# _ENTRIES=index
23+
# 配置路由别名, json: [
24+
# [别名, 路径(相对根目录或入口), 默认指令(可省略)] 或者
25+
# [别名, 路径, [允许的指令, ...], 默认指令(可省略)]
26+
# ... ], 可使用cli命令指定指令(优先 --routes=foo.bar,bar.foo )
27+
_ROUTES=[["@iRoute", "index/route"], ["@oRoute", "other/route"]]

.env.development

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,17 @@ DEV_SERVER_PORT=9000
1212
# DEV_SERVER_PAGE=/
1313
# 是否使用https (不支持http2) 默认false
1414
# DEV_SERVER_HTTPS=true
15+
1516
# 开发环境sourceMap https://webpack.js.org/configuration/devtool/#devtool 默认eval
1617
# DEV_TOOL=eval
1718
# https://webpack.js.org/configuration/output/#outputecmaversion
1819
# ES_VERSION=2020
20+
21+
# 动态代理字段,数字与PROXY_TARGET对应
22+
# 可指定为: 环境变量字段(比如:PROXY_TARGET)/ip/完整url
23+
PROXY_FIELD=proxy
24+
SEARCH_FIELD=$PROXY_FIELD\d*|_target\d+
25+
1926
# 代理接口服务地址,与 BASE_PATH 对应,比如 BASE_PATH1 对应 PROXY_TARGET1
2027
PROXY_TARGET=https://127.0.0.1:9000/api
2128

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# 更新日志
22

3+
## v 1.2.15
4+
5+
- 指定入口
6+
- 指定别名
7+
- 动态指定调试参数
8+
39
## v 1.2.14
410

511
- enum重命名为enums

README.md

Lines changed: 83 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,17 @@ vue + vuex + vue router + TypeScript(支持 JavaScript) 模板
88
- [建议开发环境](#建议开发环境)
99
- [浏览器支持](#浏览器支持)
1010
- [安装](#安装)
11-
- [命令参考(Terminal)](#命令参考(Terminal))
12-
- [开发环境](#开发环境开发调试时使用)
13-
- [构建](#生成部署包)
11+
- [命令参考(Terminal)](#命令参考Terminal)
12+
- [启动开发环境](#启动开发环境)
1413
- [代码风格检查和修正](#代码风格检查和修正提交-git-时会自动执行)
15-
- [e2e测试](#e2eend-to-end-测试)
1614
- [单元测试](#单元测试)
17-
- [命令帮助](#命令帮助)
15+
- [e2e测试](#e2eend-to-end-测试)
16+
- [生成](#生成部署包)
17+
- [其他命令](#其他命令)
18+
- [指定入口](#指定入口SPA-逗号分隔)
19+
- [指定路由配置](#指定路由配置通过别名)
20+
- [命令帮助](#命令帮助)
21+
- [联调](#联调)
1822
- [说明及注意事项](#说明及注意事项)
1923
- [目录结构](#目录结构)
2024
- [风格建议](#风格建议)
@@ -53,7 +57,7 @@ VSCode 插件
5357

5458
> 推荐工具: [`@vue/cli`](https://cli.vuejs.org/zh/guide)(最新), 全局安装时可使用 `vue ui` 命令启动图形化界面管理工程
5559
56-
> 推荐字体: [FiraCode](https://github.com/tonsky/FiraCode)
60+
> 推荐开发字体: [FiraCode](https://github.com/tonsky/FiraCode)
5761
5862
## 浏览器支持
5963

@@ -67,7 +71,7 @@ VSCode 插件
6771

6872
```bash
6973
git config core.ignorecase false # 使git对文件名大小写敏感
70-
# 或者修改 .git/config [core] ignorecase = false
74+
# 或者修改 .git/config [core] ignorecase=false
7175
```
7276

7377
`.lock` 文件时**只需**执行 `yarn` (或`npm i`) 安装即可, 否则如下:
@@ -109,18 +113,16 @@ git config core.ignorecase false # 使git对文件名大小写敏感
109113
yarn dev # --port 9876 : 本次启动使用9876端口 (可以在 .env.development.local 文件中设置)
110114
```
111115

112-
### 构建(生成部署包)
116+
### 代码风格检查和修正(提交 Git 时会自动执行)
113117

114118
```bash
115-
yarn build # --watch: 跟踪文件变化 --report: 生成打包分析
119+
yarn lint
116120
```
117121

118-
同时会生成文件名/chunk名[映射文件](build/~fileName) (公共代码抽到`_`开头的文件里了)
119-
120-
### 代码风格检查和修正(提交 Git 时会自动执行)
122+
### 单元测试
121123

122124
```bash
123-
yarn lint
125+
yarn test:unit # --watch : 跟踪文件变化
124126
```
125127

126128
### e2e(end-to-end) 测试
@@ -129,36 +131,81 @@ yarn lint
129131
yarn test:e2e
130132
```
131133

132-
### 单元测试
134+
### 生成(部署包)
133135

134136
```bash
135-
yarn test:unit # --watch : 跟踪文件变化
137+
yarn build # --watch: 跟踪文件变化 --report: 生成打包分析
136138
```
137139

138-
### 命令帮助
140+
同时会生成文件名/chunk名[映射文件](build/~fileName) (公共代码抽到`_`开头的文件里了)
141+
142+
### 其他命令
139143

140-
```bash
141-
yarn vue-cli-service help # [命令] : 比如 yarn vue-cli-service help test:e2e
142-
```
144+
#### 指定入口(SPA 逗号分隔)
143145

144-
可配置和使用指定路由配置(请使用别名引用路由配置)进行开发/构建:
145-
- 配置 [.env](.env) `_ROUTES`, 示例:
146+
1. 使用 [.env](.env) `_ENTRIES` 配置, 示例: `_ENTRIES=foo,bar`
147+
2. 通过cli命令: `entries` (覆盖1):
146148

147149
```bash
148-
_ROUTES=[["@iRoute", "src/pages/index/config/route", ["iFoo", "iBar"]], ["@oRoute", "src/pages/other/config/route", ["oFoo", "oBar"]]]
150+
yarn dev --entries=foo
151+
yarn build --entries=foo,bar
149152
```
150153

151-
- `route` 目录结构
154+
#### 指定路由配置(通过别名):
155+
156+
1. `route` 目录结构
152157

153158
```bash
154-
├── route # 全部路由配置文件夹(未指定时默认)
155-
├── route.foo # 路由配置文件夹: foo
156-
├── route.bar # 路由配置文件夹: bar
159+
├── route # 全部路由配置文件夹(缺省指令)
160+
├── route.foo # foo配置 指令: foo
161+
├── route.bar # bar配置 指令: bar
157162
# ...
163+
```
164+
165+
2. 配置 [.env](.env) `_ROUTES`, 示例:
166+
167+
```bash
168+
# 配置路由别名, json: [
169+
# [别名, 路径(相对根目录或入口), 默认指令(可省略)] 或者
170+
# [别名, 路径, [允许的指令, ...], 默认指令(可省略)]
171+
# ... ], 可使用cli命令指定指令(优先 --routes=foo.bar,bar.foo )
172+
_ROUTES=[["@fRoute", "foo/route", "foo"], ["@bRoute", "src/pages/bar/route", ["foo", "bar"], "bar"]]
173+
```
174+
175+
3. 通过cli命令: `routes`: `入口.指令,...`
176+
177+
```bash
178+
yarn dev --routes=foo.bar
179+
yarn build --routes=bar # 省略形式: 指令唯一时
180+
yarn build --routes=foo.bar,bar.foo
181+
```
182+
183+
#### 命令帮助
158184

159-
yarn dev --iFoo # 只加载foo配置
160-
yarn build --oBar # 只加载foo配置
161-
yarn dev --iBar --oFoo # 若多个html入口, 每个入口支持指定一个配置
185+
```bash
186+
yarn vue-cli-service help # [命令] : 比如 yarn vue-cli-service help test:e2e
187+
```
188+
189+
### 联调
190+
191+
支持通过浏览器地址栏动态传递调试参数
192+
193+
- 环境变量`SEARCH_FIELD`: **所有**ajax请求将会把满足该正则的参数传递给服务端(开发环境代理服务器)
194+
195+
- 动态代理字段, 通过`PROXY_FIELD`指定, 数字与静态代理(`BASE_PATH` + `PROXY_TARGET`)一致, 可以指定为环境变量名(比如 PROXY_TARGET)/ip/域名/完整url. 匹配的代理字段将**不会**传递给服务器
196+
197+
```bash
198+
# 若文件 .env.development 配置如下:
199+
# 相对路径(hash router)
200+
# BASE_PATH=foo
201+
# PROXY_TARGET=http://foo.com:666/foo
202+
# BASE_PATH1=bar
203+
# PROXY_TARGET1=https://bar.com:999/bar
204+
# PROXY_FIELD=proxy
205+
# SEARCH_FIELD=$PROXY_FIELD\d*
206+
http://{ip}:{port}/{path}?proxy=http://127.0.0.1/foo&proxy1=0.0.0.0
207+
# 结果: BASE_PATH 为 foo 的接口代理到 http://127.0.0.1/foo
208+
# BASE_PATH 为 bar 的接口代理到 https://0.0.0.0:999/bar
162209
```
163210

164211
## 说明及注意事项
@@ -214,7 +261,8 @@ yarn vue-cli-service help # [命令] : 比如 yarn vue-cli-service help test:e2e
214261
- `@` -> `src`
215262
- `@com` -> `src/components`
216263
- `@{entry}` -> 页面入口文件所在目录, 如: `@index`
217-
- `@{entry}Com` -> 页面入口文件所在目录下的 `components` 目录, 如: `@indexCom`
264+
- `@{entry}Com` -> 页面入口文件所在目录下的 `components` 目录(若存在), 如: `@indexCom`
265+
- [路由配置别名](#指定路由配置通过别名)
218266

219267
**Tips**: 在 `scss` 中使用 `~` 解析 `别名`/`依赖包` 对应目录. 示例:
220268

@@ -310,7 +358,7 @@ yarn vue-cli-service help # [命令] : 比如 yarn vue-cli-service help test:e2e
310358

311359
- `enum/type/interface` 需要导出的直接 `export` (否则可能会得到 undefined), 其他的除了字典(硬编码)和只有默认导出的外, 先定义再`export`(IDE 提示更友好), 并且`export`语句放到最后
312360
- 不要使用 `$` 作为组件事件名, 该名字已被[异步组件刷新](src/components/hoc)占用
313-
- Vue实例**私有属性**命名规则(避免 [属性名](https://cn.vuejs.org/v2/style-guide/#私有属性名-必要) 冲突):
361+
- **私有属性**命名规则(避免 [属性名](https://cn.vuejs.org/v2/style-guide/#私有属性名-必要) 冲突):
314362
- `$_` 实例命名空间(在保证易维护的前提下可以使用单字母, 但应尽量避免)
315363
- `_$` **全局/跨组件/hack**命名空间, 命名前应**先全局搜索**是否有重复
316364
- `/^[$_]+_$/` 注入**vue data 选项**命名空间应满足该正则, 即以`_`结尾(因为以`$_`其中一个字符开头的Vue不会劫持), 命名前应**先全局搜索**是否有重复
@@ -607,7 +655,7 @@ yarn vue-cli-service help # [命令] : 比如 yarn vue-cli-service help test:e2e
607655
```
608656
609657
- 所有视图组件可接收props:`route`代替`this.$route`, 区别是: **只在首次进入当前视图或当前视图url发生变化时改变**
610-
- 路由视图不需要被缓存的, 可以在`deactivated`钩子销毁实例(`this.$destroy()`)或者`activated`钩子进行更新
658+
- 路由视图不需要被缓存的, 可以在meta申明/`deactivated`钩子销毁实例(`this.$destroy()`)`activated`钩子进行更新
611659
- 为避免渲染错误, 请务必为<b style="color: red;">循环创建的组件</b>**加上 `key`**, 特别是 `tsx/ts/jsx/js`
612660
613661
### 配置和优化
@@ -817,6 +865,8 @@ http {
817865
2. 先执行 `yarn lint` 等相关命令, 待消除所有错误后, 再提交
818866
3. 确保开发时无相关报错(浏览器中页面遮罩显示错误, 控制台打印警告), 特别注意 `console.log` , `debugger``定义但未使用变量`, 只在开发环境是警告, 其他都是错误
819867
868+
- 图标概率乱码: `scss` 压缩模式下 (compressed mode) 使用 UTF-8 byte order mark (UTF-8 with BOM) 代替 @charset 声明语句导致, 暂时先使用css `import 'element-ui/lib/theme-chalk/base.css'`
869+
820870
### 问题及思考
821871
822872
- Vue 异步组件加载失败重试: 最好还是 Vue 对异步组件提供支持[#9788](https://github.com/vuejs/vue/issues/9788)
@@ -829,6 +879,6 @@ http {
829879
830880
### 其他
831881
832-
- 期待 [vue3.0](https://github.com/vuejs/vue/projects/6) & [webpack 5.0](https://github.com/webpack/webpack/projects/5) [正式版](https://github.com/webpack/changelog-v5/blob/master/README.md)
882+
- 期待 [vue3.0](https://github.com/vuejs/vue/projects/6)及其生态正式版 & [webpack 5.0](https://github.com/webpack/webpack/projects/5) [正式版](https://github.com/webpack/changelog-v5/blob/master/README.md)
833883
- `crypto-js` v4 **不支持 IE10**
834884
- `TypeScript`(3.8.2) `const enum` 编译为内联代码(`inline code`)的支持有限, 尽量使用常量成员, 然后等[更新](https://github.com/microsoft/TypeScript)吧

0 commit comments

Comments
 (0)