1 | ## 0.8.0
|
2 | **????-??-??**
|
3 | - **重大改动**
|
4 | - 新增全局对象: `Store`、`History` 和 `LocaleId`
|
5 | - 注意第一个字母大写
|
6 | - 作用范围: 所有 React 组件代码和其引用的代码
|
7 | - 重写 React 同构服务器逻辑,原则上对已有项目不会造成影响
|
8 | - 调整 CSS 打包、使用规则
|
9 | - 现在明确只存在 2 种 CSS 文件:全局 CSS 和组件 CSS
|
10 | - koot 配置文件 (默认为 `/koot.config.js`) 中的 `css.fileBasename` 为这 2 种 CSS 文件的不包含扩展名的基本文件名正则规则的设置。以下是默认设置:
|
11 | - `css.fileBasename.normal = /^((?!\.(component|module)\.).)*/`
|
12 | - `css.fileBasename.component = /\.(component|module)/`
|
13 | - 默认规则解释:以 `.component.css` 或 `.module.css` (扩展名可为 `css` `less` `sass` 等) 为结尾的文件会当作组件 CSS,其他文件会被当做全局 CSS
|
14 | - 全局 CSS 规则
|
15 | - 所有全局 CSS 文件会根据所属的 Webpack 入口,被抽出为对应的独立的 CSS 文件 (打包结果中的 `extract.[hash].css`)
|
16 | - 所有这些 CSS 文件结果也会被整合到一个统一的 CSS 文件中 (打包结果中的 `extract.all.[hash].css`)
|
17 | - 统一的 CSS 文件的文件内容会被自动写入到 `<head>` 标签内的 `<style>` 标签中
|
18 | - 虽然通常情况下已无需要,不过根据 Webpack 入口抽出的 CSS 文件仍可根据具体的需求独立使用
|
19 | - 组件 CSS 规则
|
20 | - 所有的组件 CSS 必须通过 `extend` 高阶组件的 `styles` 选项调用
|
21 | - 这些 CSS 文件必须有一个名为 `.component` 或 `.[name]__component` 的 className
|
22 | - 该 className 会被更换为 hash 结果,如 `.a85c6k` 或 `.nav__bjj15a`
|
23 | - `props.className` 会传入到对应的组件,其值为与上述结果对应的 hash 后的 className
|
24 | - 核心
|
25 | - 配置项
|
26 | - **新** `client.browserType` - 客户端中路由 (`router`) 所用的历史对象 (`history`) 类型。详情请参见文档的 [配置/客户端](https://koot.js.org/#/config?id=客户端浏览器端) 章节
|
27 | - **新** `webpack.internalLoadersOptions` - 用以扩展几乎无法修改的内置 `loader` 所用的设置。详情请参见文档的 [配置/Webpack](https://koot.js.org/#/config?id=Webpack) 章节
|
28 | - **新** `server.onRender.beforeDataToStore` 和 `server.onRender.afterDataToStore` - 允许更详细的使用服务器端渲染生命周期。详情请参见文档的 [配置/Webpack](https://koot.js.org/#/config?id=Webpack) 章节
|
29 | - `redux.syncCookie` 现支持传入 `true`: 同步所有 cookie,包括 cookie 原始字符串 (以 `__` 为名称)
|
30 | - Webpack 打包
|
31 | - 现在打包时不再会在项目根目录下生成临时文件
|
32 | - 这些文件现在移至 `/logs/tmp/` 目录下
|
33 | - 现在每种打包模式仅保留最近 2 次打包的日志文件 (`/logs/webpack-config/` 目录下)
|
34 | - React
|
35 | - 根层组件添加 `componentDidCatch` 生命周期方法,以保障 React 输出渲染结果
|
36 | - React SPA
|
37 | - 对于传入自定 `store` 对象或生成方法的项目,确保生成 `store` 使用的 `history` 对象为浏览器所用对象
|
38 | - 移除 `AppContainer` 逻辑的相关文件
|
39 | - 移除依赖包
|
40 | - `koa-compose`
|
41 | - `koa-compress`
|
42 | - `koa-helmet`
|
43 | - `koa-html-minifier`
|
44 | - `koa-json`
|
45 | - `koa-multer`
|
46 | - `koa-onerror`
|
47 | - `koa-response-time`
|
48 | - `progress`
|
49 | - 更新依赖包
|
50 | - major
|
51 | - `css-loader` -> _2.0.1_
|
52 | - `file-loader` -> _3.0.1_
|
53 | - `koa-body` -> _4.0.4_
|
54 | - `koa-mount` -> _4.0.0_
|
55 | - `koa-static` -> _5.0.0_
|
56 | - minor
|
57 | - `@babel/core` -> _7.2.2_
|
58 | - `@babel/plugin-proposal-class-properties` -> _7.2.3_
|
59 | - `@babel/plugin-proposal-decorators` -> _7.2.3_
|
60 | - `@babel/plugin-proposal-object-rest-spread` -> _7.2.0_
|
61 | - `@babel/plugin-syntax-dynamic-import` -> _7.2.0_
|
62 | - `@babel/plugin-transform-runtime` -> _7.2.0_
|
63 | - `@babel/polyfill` -> _7.2.3_
|
64 | - `@babel/preset-env` -> _7.2.3_
|
65 | - `autoprefixer` -> _9.4.3_
|
66 | - `koa` -> _2.6.2_
|
67 | - `less` -> _3.9.0_
|
68 | - `mini-css-extract-plugin` -> _0.5.0_
|
69 | - `react` -> _16.7.0_
|
70 | - `react-dom` -> _16.7.0_
|
71 | - `react-hot-loader` -> _4.6.3_
|
72 | - `webpack` -> _4.28.1_
|
73 | - patch
|
74 | - `inquirer` -> _6.2.1_
|
75 | - `pm2` -> _3.2.4_
|
76 | - `portfinder` -> _1.0.20_
|
77 | - `postcss` -> _7.0.7_
|
78 |
|
79 | ## 0.7.11
|
80 | **2018-12-17**
|
81 | - 核心
|
82 | - 多语言
|
83 | - 同构时如果获取的语种ID在项目中不存在,现在会忽略该值
|
84 |
|
85 | ## 0.7.10
|
86 | **2018-12-12**
|
87 | - 核心
|
88 | - 配置项
|
89 | - 现在会处理 `server.onRender.beforeDataToStore` 或 `server.onRender.afterDataToStore` 配置为 `Pathname` 类型的情况
|
90 |
|
91 | ## 0.7.9
|
92 | **2018-12-12**
|
93 | - 核心
|
94 | - 配置项
|
95 | - **新** `server.onRender.beforeDataToStore` 和 `server.onRender.afterDataToStore` - 允许对服务器渲染时的生命周期方法进行更详细的设定。详情请参见文档的 [配置/服务器端](https://koot.js.org/#/config?id=服务器端) 章节
|
96 |
|
97 | ## 0.7.8
|
98 | **2018-12-11**
|
99 | - 错误修正
|
100 | - 修复客户端无法保存当前语种ID的问题
|
101 |
|
102 | ## 0.7.7
|
103 | **2018-12-11**
|
104 | - 核心
|
105 | - 配置项
|
106 | - **新** `i18n.use` - 配置多语言项目的 URL 使用方式。详情请参见文档的 [配置/多语言](https://koot.js.org/#/config?id=多语言) 章节
|
107 | - 多语言
|
108 | - 现支持第一级路由为语种ID的使用方案 (`i18n.use = 'router'`)
|
109 | - 自动添加的多语言跳转 meta 标签现在会过滤掉当前语言的标签
|
110 | - React同构 (`ReactApp`)
|
111 | - 改进服务器输出 CSS 结果时的稳定性
|
112 | - 更新依赖包
|
113 | - patch
|
114 | - `react-router` -> _3.2.1_
|
115 |
|
116 | ## 0.7.6
|
117 | **2018-12-04**
|
118 | - 核心
|
119 | - 配置项
|
120 | - **新** `server.proxyRequestOrigin` - 若本 Node.js 服务器是通过其他代理服务器请求的(如 nginx 反向代理),可用这个配置对象声明原请求的信息。详情请参见文档的 [配置](https://koot.js.org/#/config) 章节
|
121 | - PWA
|
122 | - `service-worker` 默认行为调整,现在初始时仅会对 `.js` 文件进行缓存
|
123 | - 错误修正
|
124 | - 修复某些情况下,同构服务器启动端口不正确的问题
|
125 |
|
126 | ## 0.7.5
|
127 | **2018-12-03**
|
128 | - React
|
129 | - 高阶组件 `extend()`
|
130 | - `connect` 现在支持传入 Array,以对应 `react-redux` 的 `connect()` 的多参数情形
|
131 | - React同构 (`ReactApp`)
|
132 | - 确保服务器的 `onRender` 生命周期仅响应可用的请求,同时确保此时的数据为最新可用的数据
|
133 | - 错误修正
|
134 | - 修复某些情况下,模板注入 (`inject`) 使用的 `state` 失效的问题
|
135 | - 修复某些情况下,Webpack 打包因出错挂起的问题
|
136 |
|
137 | ## 0.7.4
|
138 | **2018-11-29**
|
139 | - 核心
|
140 | - Webpack 打包
|
141 | - 现在每种打包模式仅保留最近 5 次打包的日志文件 (`/logs/webpack-config/` 目录下)
|
142 | - React同构 (`ReactApp`)
|
143 | - 注入 (`inject`) 现在支持函数写法,详情请参见文档的 [HTML 模板](https://koot.js.org/#/template) 章节
|
144 | - React SPA
|
145 | - 不启用多语言的项目现在可以恢复使用 SPA 模式了
|
146 | - 错误修正
|
147 | - 修复并发访问时存在多个 `koot-locale-id` meta 标签的问题
|
148 | - 修复某些情况下,HTML 同构结果中 `<script>` 标签之间会出现额外逗号 (`,`) 的问题
|
149 | - 更新依赖包
|
150 | - minor
|
151 | - `webpack` -> _4.26.1_
|
152 | - patch
|
153 | - `mini-css-extract-plugin` -> _0.4.5_
|
154 | - `terminate` -> _2.1.2_
|
155 | - `yargs` -> _12.0.5_
|
156 |
|
157 | ## 0.7.3
|
158 | **2018-11-22**
|
159 | - 核心
|
160 | - 配置项
|
161 | - **新** `webpack.hmr` - 可选。开发模式下 `webpack.HotModuleReplacementPlugin` 插件的配置对象。详情请参见文档的 [配置](https://koot.js.org/#/config) 章节
|
162 | - 多语言
|
163 | - 翻译方法 (默认 `__()`) 现在支持语言包中类型为 `Array` 的内容
|
164 | - 开发模式
|
165 | - `react` 自动热更新能力现在支持更多的情况
|
166 | - React
|
167 | - 支持提供 `store` 创建方法函数的项目
|
168 |
|
169 | ## 0.7.0
|
170 | **2018-11-19**
|
171 | - 核心
|
172 | - 配置项
|
173 | - **新** `css` - CSS 打包相关设置。详情请参见文档的 [配置](https://koot.js.org/#/config) 章节
|
174 | - **新** `webpack.dll` - 开发模式下供 `webpack.DllPlugin` 使用。webpack 的监控不会处理这些库/library,以期提高开发模式的打包更新速度。详情请参见文档的 [配置](https://koot.js.org/#/config) 章节
|
175 | - **新** `redux.syncCookie` - 允许服务器端在同构时将 `cookie` 中对应的项同步到 redux state 的 `server.cookie` 中。详情请参见文档的 [配置](https://koot.js.org/#/config) 章节
|
176 | - 生产模式
|
177 | - 使用 `koot-start` 命令时,如果打包过程发生错误,现在会显示更详细的错误记录
|
178 | - 开发模式
|
179 | - 现在可以同时启动多个 Koot 项目的开发模式了
|
180 | - 启用 `webpack` 热更新的 `多步骤 (multiStep)` 机制提高热更新速度
|
181 | - 启用 `webpack.DllPlugin` 提高打包更新速度
|
182 | - 分析模式
|
183 | - 输出的文件名结果现在具有可读性
|
184 | - Webpack 打包
|
185 | - 重写 CSS 相关 `loader`,现在会确保同构结果中 CSS 样式名的正确性
|
186 | - 执行打包时会自动清理 `/logs/webpack-config/` 目录下创建于 2 天前的报告文件
|
187 | - `/logs/webpack-config/` 目录下新生成的报告文件中,现在会正确的显示正则表达式
|
188 | - React
|
189 | - 高阶组件 `extend()`
|
190 | - `pageinfo` 和 `data` 不再要求必须使用 `connect`
|
191 | - 使用新的 `context` 语法重写样式、CSS 相关逻辑
|
192 | - React同构 (`ReactApp`)
|
193 | - 现在启动服务器时会对设定的端口进行检查。如果端口被占用,会报告相应的错误
|
194 | - 对于传入完整 `store` 的项目,现在每次请求时会尝试使用全新的 `state`
|
195 | - 优化服务器端初始化 `store` 的流程
|
196 | - 错误修正
|
197 | - 修复生成了错误的多语言跳转 meta 链接地址的问题
|
198 | - 修正某些情况下 React 组件热更新不起作用的问题
|
199 | - 添加依赖包
|
200 | - `inquirer`
|
201 | - `is-port-reachable`
|
202 | - `portfinder`
|
203 | - 移除依赖包
|
204 | - `sp-css-loader`
|
205 | - 更新依赖包
|
206 | - major
|
207 | - `sp-css-import` -> _4.0.0_
|
208 | - minor
|
209 | - `copy-webpack-plugin` -> _4.6.0_
|
210 | - `webpack` -> _4.25.1_
|
211 | - patch
|
212 | - `@babel/core` -> _7.1.6_
|
213 | - `@babel/plugin-proposal-decorators` -> _7.1.6_
|
214 | - `@babel/preset-env` -> _7.1.6_
|
215 | - `css-loader` -> _1.0.1_
|
216 | - `fs-extra` -> _7.0.1_
|
217 | - `postcss` -> _7.0.6_
|
218 | - `react` -> _16.6.3_
|
219 | - `react-dom` -> _16.6.3_
|
220 | - `react-hot-loader` -> _4.3.12_
|
221 | - `react-redux` -> _5.1.1
|
222 | - `sp-css-loader` -> _1.5.3_
|
223 | - `yargs` -> _12.0.4_
|
224 | - 其他
|
225 | - 更新测试项目和测试案例
|
226 | - `koot-cli`
|
227 | - 更新项目到 v0.7 时,会自动添加兼容旧版规则的 `css` 配置
|
228 | - `sp-css-import`
|
229 | - 更新核心代码,以兼容 koot v0.6 后的新结构
|
230 | - 使用新的 `context` 语法重写样式、CSS 相关逻辑
|
231 |
|
232 | ## 0.6.1
|
233 | **2018-10-29**
|
234 | - 错误修正
|
235 | - 修复打包时将 webpack 配置写入 log 文件的过程中的一处错误
|
236 |
|
237 | ## 0.6.0
|
238 | **2018-10-29**
|
239 | - 核心
|
240 | - 新的配置方式 `koot.config.js`
|
241 | - 整合原有的 `koot.js` 和 `koot.build.js`
|
242 | - 原有配置方式依旧可用
|
243 | - 请参照模板项目了解新的配置文件内容和写法
|
244 | - 项目配置
|
245 | - `redux` 新增可选配置项 `store`
|
246 | - 项目自创建的 Redux store。提供该对象时,`redux.combineReducers` 配置项会被忽略
|
247 | - 开发模式
|
248 | - 启用 `babel-loader` 的缓存,加速热更新的响应速度
|
249 | - Webpack
|
250 | - 写入打包配置记录文件时如果发生错误,现在会忽略该错误,并继续流程
|
251 | - React
|
252 | - 路由 (router) 移除配置外层包裹的空层级
|
253 | - 模板 (`ejs`)
|
254 | - 新语法
|
255 | - `content(文件名)`
|
256 | <br>输出对应文件的文件内容到 HTML 代码中,如 `content('critical.css')` 会读取打包结果中的 `critical.css` 并渲染到 HTML 代码中
|
257 | - `pathname(文件名)`
|
258 | <br>输出对应文件的访问地址到 HTML 代码中,如 `pathname('critical.css')` 会将打包结果中 `critical.css` 的 URL 访问地址渲染到 HTML 代码中
|
259 | - 如果模板文件中针对 `critical` 使用上述新语法,则 `styles` 和 `scripts` 两个注入内容中不会出现 `critical` 的相关内容
|
260 | - 模板项目已更新,可供参考
|
261 | - React 同构
|
262 | - 生产 (`prod`) 环境开启渲染缓存,缓存默认存在 **5秒**
|
263 | - `sp-css-loader`
|
264 | - 开发模式下启用CSS样式名可读性规则:CSS样式名以 `.[class]__component` 方式命名时,DOM 上的样式名会变为类似 `.nav__a8c0` 的结果
|
265 | - 更新依赖包
|
266 | - `react` -> _16.6.0_
|
267 | - `react-dom` -> _16.6.0_
|
268 | - `react-redux` -> _5.1.0_
|
269 | - `webpack` -> _4.23.1_
|
270 | - `webpack-dev-server` -> _3.1.10_
|
271 | - `copy-webpack-plugin` -> _4.5.4_
|
272 | - `autoprefixer` -> _9.3.1_
|
273 |
|
274 | ## 0.5.5
|
275 | **2018-10-15**
|
276 | - 核心
|
277 | - Webpack
|
278 | - `less-loader` 默认开启 Javascript 选项 (`javascriptEnabled`)
|
279 |
|
280 | ## 0.5.4
|
281 | **2018-10-15**
|
282 | - React
|
283 | - 移除根层 `#root` 下的额外 `<div>`
|
284 |
|
285 | ## 0.5.2
|
286 | **2018-10-12**
|
287 | - React
|
288 | - 高阶组件 `extend`
|
289 | - `data` 可传入 _Function_,作为传统的 `data.fetch`
|
290 | - 该情况下,数据检查操作建议写在 redux action 中
|
291 | - `data.fetch` 可传入 _Array_,核心代码会自动执行 `Promise.all()`
|
292 |
|
293 | ## 0.5.1
|
294 | **2018-10-11**
|
295 | - 错误修正
|
296 | - `pageinfo` 移除已有 `meta` 标签时遇到 `undefined` 时全局报错的问题
|
297 |
|
298 | ## 0.5.0
|
299 | **2018-10-11**
|
300 | - 核心
|
301 | - 为避免版本冲突,将所有 NPM 依赖包的版本改为固定版本
|
302 | - 开发模式 (`koot-dev`)
|
303 | - 新的命令选项 `--no-open`:禁用自动打开浏览器
|
304 | - 针对 React 组件自动启用热更新
|
305 | - 注意事项请参见文档的 [React组件热更新](https://koot.js.org/react-hmr) 章节
|
306 | - React同构 (`ReactApp`)
|
307 | - 新的高阶组件 `extend`
|
308 | - `import { extend } from 'koot'`
|
309 | - 可作为组件装饰器使用
|
310 | - 提供同构数据功能
|
311 | - 包含 `pageinfo` 和 `ImportStyle` 功能
|
312 | - 具体用法请参见文档的 [React高阶组件](https://koot.js.org/react-hoc) 章节
|
313 | - 优化 CSS 处理相关流程
|
314 | - 开发模式
|
315 | - 页面可访问静态资源文件目录中的内容
|
316 | - 错误修正
|
317 | - 浏览器环境 (`__CLIENT__`) 中使用 `utils/get-port` 方法无结果的问题
|
318 |
|
319 | ## 0.4.3
|
320 | **2018-09-18**
|
321 | - **ReactApp** (React同构)
|
322 | - 开发模式:重写可使用本机 IP 地址访问的功能,现在会适应更多场景
|
323 |
|
324 | ## 0.4.2
|
325 | **2018-09-18**
|
326 | - 打包配置 (`/koot.build.js`)
|
327 | - 新增选项:`staticAssets`
|
328 | - 静态资源文件存放路径,打包时会自动复制该目录下的所有文件到打包目录下,方便直接使用
|
329 |
|
330 | ## 0.4.1
|
331 | **2018-09-17**
|
332 | - `koot-analyze` 命令现在不会生成 `service-worker` 文件
|
333 | - **ReactApp** (React同构)
|
334 | - 开发模式:可使用本机 IP 地址访问
|
335 |
|
336 | ## 0.4.0
|
337 | **2018-09-17**
|
338 | - 启用命令: `koot-analyze`
|
339 |
|
340 | ## 0.3.2
|
341 | **2018-09-14**
|
342 | - 错误修正
|
343 | - 开发模式不会实时响应语言包文件更新的问题
|
344 |
|
345 | ## 0.3.1
|
346 | **2018-09-14**
|
347 | - 错误修正
|
348 | - 开发模式不断重启的问题
|
349 |
|
350 | ## 0.3.0
|
351 | **2018-09-14**
|
352 | - **ReactApp** (React同构)
|
353 | - 当多语言(i18n)启用时,在 `<head>` 中自动生成跳转到相应的其他语种的链接的 `<link>` 标签
|
354 | - 内部代码
|
355 | - `hl` 修改为全局常量
|
356 |
|
357 | ## 0.2.4
|
358 | **2018-09-14**
|
359 | - 依赖库
|
360 | - 添加:`@babel/plugin-syntax-dynamic-import`
|
361 |
|
362 | ## 0.2.3
|
363 | **2018-09-12**
|
364 | - 生成 Webpack 配置
|
365 | - 完善:忽略值为 `null` `undefined` 等空值的插件项
|
366 |
|
367 | ## 0.2.2
|
368 | **2018-09-12**
|
369 | - 生成 Webpack 配置
|
370 | - 忽略值为 `null` `undefined` 等空值的插件项
|
371 |
|
372 | ## 0.2.1
|
373 | **2018-09-11**
|
374 | - 错误修正
|
375 | - 启动开发模式时生成名为 `1.json` 文件的问题
|
376 |
|
377 | ## 0.2.0
|
378 | **2018-09-10**
|
379 | - 更新 `babel` 至 v7
|
380 | - 新增单元测试
|
381 | 1. 生成 Webpack 配置
|
382 | 2. Webpack 打包流程
|
383 |
|
384 | ## 0.1.0
|
385 | **2018-08-24**
|
386 | - 更名至 `koot`
|
387 | - 重置版本号
|
388 |
|
389 | ----
|
390 |
|
391 | 更名至 `koot`
|
392 |
|
393 | ----
|
394 |
|
395 | ## 3.0.7-alpha.31
|
396 | **2018-06-19**
|
397 | - 可直接通过 `super-project` 载入内容
|
398 | - 用法示例:`import { store, history } from 'super-project'`)
|
399 | - 当前可用内容
|
400 | - `store` - Redux store
|
401 | - `history` - 路由与历史记录对象,包含 `push`、`replace` 等方法
|
402 | - `localeId` - (仅在 i18n 开启时可用) 当前语种ID
|
403 | - `pageinfo` - (原 `super-ui-page`) 更新页面 `title` 和 `meta` 的装饰器
|
404 | - 移除 `super-ui-page` 依赖
|
405 | - 原有的 `superPage` 移动到 `super-project` 主包中
|
406 | - 更名为 `pageinfo`
|
407 |
|
408 | ## 2.4.0
|
409 | 2018-02-11
|
410 | - 新增文件 `CHANGELOG.md`
|
411 | - 更新依赖库
|
412 | - `sp-isomorphic-utils`
|
413 | - `getFile`: 如果根据文件名直接匹配到目标文件,直接返回该文件名,不再继续进行文件夹内过滤
|
414 | - `sp-pwa`
|
415 | - `create`: 创建 service-worker 时,新增参数 `outputFilenameHash`,表示创建的 sw 文件名中带有 hash,默认为 `false`
|
416 | - 当前的 service-worker 规范中,浏览器不会对 sw 文件进行缓存,每次访问页面时都会尝试重新获取 sw 文件
|
417 | - `get-service-worker-file`: 更新到最新的 `getFile()` 方法
|