schangxiang@126.com
2025-09-19 0821aa23eabe557c0d9ef5dbe6989c68be35d1fe
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
 
4.17.0 / 2019-04-24
==================
 
**features**
  * [[`515d50f`](http://github.com/eggjs/egg-core/commit/515d50f59a00e1987affc8a06002d353ee926ab2)] - feat: debug middleware enter log on every request (#210) (fengmk2 <<fengmk2@gmail.com>>)
 
4.16.2 / 2019-04-11
==================
 
**others**
  * [[`1ba4d7c`](http://github.com/eggjs/egg-core/commit/1ba4d7ca8f137399ad10c54814a334264752a41f)] - fix(d.ts):  caseStyle should return array (#209) (JimmyDaddy <<heyjimmygo@gmail.com>>)
 
4.16.1 / 2019-03-20
==================
 
**fixes**
  * [[`6bbbca2`](http://github.com/eggjs/egg-core/commit/6bbbca275f6573f125979fa215fea62285be201d)] - fix: change non-exports type to interface (#206) (吖猩 <<whxaxes@qq.com>>)
 
4.16.0 / 2019-03-19
==================
 
**features**
  * [[`0b7b6e6`](http://github.com/eggjs/egg-core/commit/0b7b6e66d7dd3027c7f4b161b5e6601b8feed4c9)] - feat: custom loader support exports (#205) (TZ | 天猪 <<atian25@qq.com>>)
  * [[`01201c3`](http://github.com/eggjs/egg-core/commit/01201c3e65383d90b3b33ddf7a20a17ce6b7e97c)] - feat: improve d.ts (#204) (吖猩 <<whxaxes@qq.com>>)
 
**fixes**
  * [[`ab3ffcf`](http://github.com/eggjs/egg-core/commit/ab3ffcf6e808a426178fe776604e500770e35e97)] - fix: customLoader should not overwrite the existing property (#203) (Haoliang Gao <<sakura9515@gmail.com>>)
 
4.15.0 / 2019-03-06
==================
 
**features**
  * [[`3299be4`](http://github.com/eggjs/egg-core/commit/3299be492761f0082a37827c102d0d32204a03cd)] - feat: add new mixin loadCustomLoader in Loader (#202) (Haoliang Gao <<sakura9515@gmail.com>>)
 
**fixes**
  * [[`d7c2c9a`](http://github.com/eggjs/egg-core/commit/d7c2c9a2d3ed0361cb2fb43c657bae57a06ec32d)] - fix: don't print when plugins that disabled by app is empty (#201) (Haoliang Gao <<sakura9515@gmail.com>>)
 
4.14.1 / 2019-02-15
==================
 
**others**
  * [[`6d34013`](http://github.com/eggjs/egg-core/commit/6d34013a6551f4862b5836441c642c9abde77f18)] - deps: use egg router 2.0.0 (#200) (fengmk2 <<fengmk2@gmail.com>>)
 
4.14.0 / 2019-02-03
==================
 
**features**
  * [[`2eb0076`](http://github.com/eggjs/egg-core/commit/2eb007695e9509eb41d8e86032c7739d085d3d2c)] - feat: support options.env to specific server env (#199) (Yiyu He <<dead_horse@qq.com>>)
 
4.13.3 / 2019-01-30
==================
 
**others**
  * [[`8bfbbea`](http://github.com/eggjs/egg-core/commit/8bfbbea160a819a7c63a2581bd7538d20ff5d7a0)] - chore: upgrade egg-router (#198) (Yiyu He <<dead_horse@qq.com>>)
 
4.13.2 / 2019-01-30
==================
 
**others**
  * [[`fcdf663`](http://github.com/eggjs/egg-core/commit/fcdf663b823f0b6203a8b7eb0013838a0f48e650)] - chore: use @eggjs/router instead of koa-router (#197) (Yiyu He <<dead_horse@qq.com>>)
  * [[`29118e5`](http://github.com/eggjs/egg-core/commit/29118e5fe266b6598f9d3fdb4fabd96dca4569e8)] - Chore (gitignore, file_loader.test.js): Update files (#195) (Maledong <<maledong_github@outlook.com>>)
 
4.13.1 / 2019-01-11
==================
 
**others**
  * [[`35ed3fa`](http://github.com/eggjs/egg-core/commit/35ed3fa2baf4cbcfee9f9e307e9f9f56fb93349d)] - refactor(jest-support): Replace require.extensions with Module._extensions (#196) (Gray <<njugray@gmail.com>>)
 
4.13.0 / 2018-12-14
==================
 
**features**
  * [[`90cafae`](http://github.com/eggjs/egg-core/commit/90cafaea21f99a7dc97c50b591bbe3eae4eb039c)] - feat: loader support load file without extname (#194) (吖猩 <<whxaxes@qq.com>>)
 
4.12.0 / 2018-12-11
==================
 
**features**
  * [[`df1cc5b`](http://github.com/eggjs/egg-core/commit/df1cc5bd5b0764491e15a31932b357115371cf00)] - feat: support jest (#188) (吖猩 <<whxaxes@qq.com>>)
 
**others**
  * [[`b123b61`](http://github.com/eggjs/egg-core/commit/b123b618171fd7f2d10134bcb7e8f9f28ff5a033)] - chore: resolve EggApplication is not a Class (#186) (zhangdianpeng <<hzzhangdianpeng@corp.netease.com>>)
 
4.11.0 / 2018-10-19
==================
 
**features**
  * [[`fdc1ee5`](http://github.com/eggjs/egg-core/commit/fdc1ee546bc504dbf85d78f33ff61eaa266c0d02)] - feat: add 'configWillLoad' hook to lifecycle (#187) (fengmk2 <<fengmk2@gmail.com>>)
 
4.10.3 / 2018-09-29
===================
 
**fixes**
  * [[`58a49e4`](https://github.com/eggjs/egg-core/pull/184/commits/58a49e46684bf6adceada18abb1fe1b7086a764e)] - fix(lifecycle): forbid adding hook after initialization (#184) (initialwu)
 
**others**
  * [[`9c16f2e`](https://github.com/eggjs/egg-core/pull/184/commits/9c16f2e8919384b65ba36e2a7050db524d18c3a5)] - chore(eslint): set root=true to stop looking in parent folders (#183) (initialwu)
 
4.10.2 / 2018-09-21
==================
 
**fixes**
  * [[`0b0c23f`](http://github.com/eggjs/egg-core/commit/0b0c23f502fc0c2641fa7c1740a9777236e8f4db)] - fix: app.js export can be non-function (#182) (Yiyu He <<dead_horse@qq.com>>)
 
4.10.1 / 2018-09-21
==================
 
**fixes**
  * [[`33c07db`](http://github.com/eggjs/egg-core/commit/33c07db023ebc1a120d5ce1fa37da9e42b18e8f1)] - fix: ensure treat function app.js as configDidLoad (#181) (Yiyu He <<dead_horse@qq.com>>)
 
4.10.0 / 2018-09-06
==================
 
**features**
  * [[`9d2f2fc`](http://github.com/eggjs/egg-core/commit/9d2f2fc3655e29aca52ac06a574bf69c1ba4d239)] - feat: impl boot methods (#171) (killa <<killa123@126.com>>)
 
**others**
  * [[`b71074d`](http://github.com/eggjs/egg-core/commit/b71074d7c0d5e5353ab8d3bbf279023184557809)] - fix(config) removes whitespace from both ends of serverEnv (#180) (supperchong <<2267805901@qq.com>>)
  * [[`ae38fa4`](http://github.com/eggjs/egg-core/commit/ae38fa4c47c35c32d9ca73e0311f64305573acd4)] - chroe: add more comments for toAsyncFunction and toPromise (Maledong <<maledong_github@outlook.com>>)
  * [[`4d4113c`](http://github.com/eggjs/egg-core/commit/4d4113cfd27d1e8ce4ce65d2d19b0035b5291dcc)] - style(core): beautify reg and add .idea to ignore (#179) (Army <<army8735@qq.com>>)
 
4.9.1 / 2018-07-12
==================
 
  * revert: #172 loadUnit.name (#175)
  * chore(typings): add pkg.types and pkg.files entry for index.d.ts (#176)
 
4.9.0 / 2018-07-09
==================
 
  * chore(typings): add index.d.ts (#169)
  * feat: loadUnit should exports name (#172)
  * fix: remove useless code (#170)
  * docs: fix a typo (#168)
 
4.8.0 / 2018-05-22
==================
 
**features**
  * [[`bb24396`](http://github.com/eggjs/egg-core/commit/bb243964c98a633c6ccdfb5b0dc1f55a4d1ea301)] - feat: pick commit from 3.x (#166) (Haoliang Gao <<sakura9515@gmail.com>>)
 
**others**
  * [[`72d33ae`](http://github.com/eggjs/egg-core/commit/72d33ae10cf8ff9e8e640bf3aba028da5ca7b90a)] - test: add testcase for loadExtend with function call (#167) (Haoliang Gao <<sakura9515@gmail.com>>)
 
4.7.1 / 2018-04-25
==================
 
**fixes**
  * [[`4508c36`](http://github.com/eggjs/egg-core/commit/4508c364346ddf16a752e26bc7966216f9c09c10)] - fix: toAsyncFunction can't pass is.asyncFunction() (#159) (Khaidi Chu <<i@2333.moe>>)
 
4.7.0 / 2018-04-21
==================
 
  * feat: support ts by env (#158)
 
4.6.0 / 2018-04-09
==================
 
**features**
  * [[`7f087e7`](http://github.com/eggjs/egg-core/commit/7f087e7d30bf9b07249b44fb943bcc9d109f26f6)] - feat: change assert to warning (#157) (Axes <<whxaxes@qq.com>>)
 
4.5.0 / 2018-03-25
==================
 
**features**
  * [[`2c6fbbf`](http://github.com/eggjs/egg-core/commit/2c6fbbf10c34420d623282312b555eecaaf3a755)] - feat: loader support custom extension (#156) (Axes <<whxaxes@qq.com>>)
 
4.4.1 / 2018-03-09
==================
 
**fixes**
  * [[`046ffdd`](http://github.com/eggjs/egg-core/commit/046ffdd5d4b918ddfc0e9f7980567374b594ef97)] - fix: should not load optional plugin & their deps (#154) (zōng yǔ <<gxcsoccer@users.noreply.github.com>>)
 
4.4.0 / 2018-01-18
==================
 
**features**
  * [[`5323a9e`](git@github.com:eggjs/egg-core/commit/5323a9ec54d60a43aed06cfd67c617d02909715d)] - feat: add patch method for update (egg#1793) (#150) (吴建金 <<mosaic101@foxmail.com>>)
 
4.3.2 / 2018-01-13
==================
 
**fixes**
  * [[`2926058`](git@github.com:eggjs/egg-core/commit/29260580b387ba6657c76a7881f60c4ce44c295c)] - fix: mutli-path register. (#151) (SuperEVO <<zhang740@qq.com>>)
 
4.3.1 / 2018-01-12
==================
 
**fixes**
  * [[`b41891d`](http://github.com/eggjs/egg-core/commit/b41891d160cd8be6e2df58b8540376b4ca6c76b8)] - fix: fix plugin sequence bug (#152) (zōng yǔ <<gxcsoccer@users.noreply.github.com>>)
  * [[`4f1c19a`](http://github.com/eggjs/egg-core/commit/4f1c19af711e4fe8cf65a2f0f01acdf5f276188b)] - fix: only filter the plugin which is disabled by app (#145) (#146) (Haoliang Gao <<sakura9515@gmail.com>>)
 
**others**
  * [[`3384a87`](http://github.com/eggjs/egg-core/commit/3384a8796d878536e8144671c42f5872c3d0e3a9)] - refactor: replace `indexOf()` with `includes()` (#148) (m31271n <<m31271n@2players.studio>>)
  * [[`613f236`](http://github.com/eggjs/egg-core/commit/613f236fba69f55ca27911d29d81a918c8d67c18)] - docs: fix typo (#147) (m31271n <<m31271n@2players.studio>>)
  * [[`25b728c`](http://github.com/eggjs/egg-core/commit/25b728c41fdf941c97f23a2675b8b82443f28938)] - refactor: warning when the plugin disabled by app is enabled implicitly (#141) (Haoliang Gao <<sakura9515@gmail.com>>)
 
4.3.0 / 2017-12-13
==================
 
**features**
  * [[`cbcf402`](http://github.com/eggjs/egg-core/commit/cbcf4028055a570c81b26dd39cadcfc548ffefd4)] - feat: support options.serverScope for egg-mock (#143) (Yiyu He <<dead_horse@qq.com>>)
 
4.2.2 / 2017-12-12
==================
 
**fixes**
  * [[`b327145`](git@github.com:eggjs/egg-core/commit/b327145d2c6f1328a5d0117186fef218c4b673a7)] - fix: should load router middleware in beforeStart (#139) (Yiyu He <<dead_horse@qq.com>>)
  * [[`187fdec`](git@github.com:eggjs/egg-core/commit/187fdec6c63c22c73716741934771eefb54320a8)] - fix: check whether controller exists (#138) (TZ | 天猪 <<atian25@qq.com>>)
 
4.2.1 / 2017-12-01
==================
 
**fixes**
  * [[`035098c`](http://github.com/eggjs/egg-core/commit/035098cfca5b20c05a8dde719f0e3995037b9a04)] - fix: adjust implicitly enable logic (#135) (zōng yǔ <<gxcsoccer@users.noreply.github.com>>)
 
4.2.0 / 2017-11-29
==================
 
**features**
  * [[`4979b98`](http://github.com/eggjs/egg-core/commit/4979b984e12cd39516ed1c6df5f1284c8faede2f)] - feat: export controller function's FULLPATH (#131) (#132) (fengmk2 <<fengmk2@gmail.com>>)
 
4.1.0 / 2017-11-20
==================
 
**features**
  * [[`4bb7472`](git@github.com:eggjs/egg-core/commit/4bb7472b1c2365e5b44d5f7c7f7050cb5915aa75)] - feat: export egg utils (#130) (Yiyu He <<dead_horse@qq.com>>)
 
**others**
  * [[`a02df89`](git@github.com:eggjs/egg-core/commit/a02df8958f040dc1796dffb0094f535c5c3936e9)] - test: use async function instead of generator function (#128) (Yiyu He <<dead_horse@qq.com>>)
 
4.0.0 / 2017-11-08
==================
 
**others**
  * [[`ba0c9b9`](git@github.com:eggjs/egg-core/commit/ba0c9b9e44c57333485e5424b81f047249232232)] - refactor: upgrade to koa@2 and koa-router@7 [BREAKING_CHANGE] (#125) (Yiyu He <<dead_horse@qq.com>>)
 
3.18.0 / 2017-11-08
==================
 
**features**
  * [[`c944f79`](git@github.com:eggjs/egg-core/commit/c944f79cf9c4ec160bb56d97b41fc7d7e2c8d27c)] - feat: export app.options (#127) (Haoliang Gao <<sakura9515@gmail.com>>)
 
3.17.0 / 2017-11-07
==================
 
**features**
  * [[`08b498f`](git@github.com:eggjs/egg-core/commit/08b498f76ff259ee049c20eb1933c5a294179cc8)] - feat: toAsyncFunction compact with async function (#126) (Yiyu He <<dead_horse@qq.com>>)
 
3.16.0 / 2017-11-06
==================
 
**features**
  * [[`f9b4ae8`](git@github.com:eggjs/egg-core/commit/f9b4ae89b9d0b51a042fe7f80ab0cee184f30445)] - feat: add toPromise and toAsyncFunction (#124) (Yiyu He <<dead_horse@qq.com>>)
 
3.15.1 / 2017-10-29
==================
 
**others**
  * [[`1eaa0c6`](http://github.com/eggjs/egg-core/commit/1eaa0c689aabd650955d0150228d3bd2a3dd8aa9)] - refactor: use utility to read json (#122) (Haoliang Gao <<sakura9515@gmail.com>>)
 
3.15.0 / 2017-10-20
==================
 
**features**
  * [[`eedfd3d`](http://github.com/eggjs/egg-core/commit/eedfd3d4517f1931f541d0201c3f7d1c2fbf85a3)] - feat: support serverScope (#120) (Haoliang Gao <<sakura9515@gmail.com>>)
 
3.14.0 / 2017-10-17
==================
 
**features**
  * [[`c2dec90`](http://github.com/eggjs/egg-core/commit/c2dec90b0f942384f62c432d61f4917c55652fd4)] - feat(core): adding support to register inherited methods when loading controllers (#119) (lkspc <<lkspc@qq.com>>)
 
3.13.1 / 2017-09-01
===================
 
  * fix: TypeError when DEBUG=* (#112)
 
3.13.0 / 2017-07-24
===================
 
  * feat: controller support params by config (#110)
  * style: spelling mistakes,orginal -> original (#109)
 
3.12.2 / 2017-07-11
===================
 
  * fix: check loader existing before retrieve properties (#108)
 
3.12.1 / 2017-07-05
==================
 
  * fix: should ignore Object.getPrototypeOf check on null/undefined (#107)
 
3.12.0 / 2017-07-05
===================
 
  * feat: generate configMeta (#106)
  * deps: upgrade eslint (#104)
  * docs: fix typo (#103)
  * deps: upgrade dependencies (#102)
  * refactor(plugin): ignore loop when push plugin.default.js (#101)
 
3.11.0 / 2017-06-21
==================
 
  * feat: framework can override getExtendFilePaths (#100)
 
3.10.0 / 2017-06-08
===================
 
  * chore: improve cov (#91)
  * feat: support app.middleware[name] (#98)
  * test: add node 8 (#97)
 
3.9.0 / 2017-05-31
==================
 
  * feat: app timeout support config by env (#94)
  * fix: load class controller should skip getter & setter (#96)
  * refactor: use template literals in lib/utils/index.js (#95)
 
3.8.0 / 2017-05-20
==================
 
  * feat: support load custom file type (#93)
  * chore(documentation): fix typo (#92)
  * test: fix the testcase that is skipped (#89)
  * refactor: change private function name to Symbol from being called outside. (#87)
  * test: skip the failed testcase (#88)
  * refactor: use es6 rest parameter. (#84)
 
3.7.0 / 2017-05-03
==================
 
  * feat(file_loader): support filter options (#86)
  * feat: support custom directory (#85)
  * refact: use es6 default parameter value synax. (#83)
 
3.6.0 / 2017-05-02
==================
 
  * feat: add fullPath property on class instance (#82)
 
3.5.0 / 2017-04-26
==================
 
  * feat(file_loader): ignore option support array in FileLoader (#81)
  * fix: wrong optional dependencies in complex demo (#80)
 
3.4.1 / 2017-04-21
==================
 
  * fix: should support module.exports = function*(ctx) {} as a controller (#79)
 
3.4.0 / 2017-04-18
==================
 
  * refactor: export getHomedir that can be extended (#78)
  * feat: expose eggPlugins (#77)
 
3.3.1 / 2017-04-17
==================
 
  * fix: optionally depend on a plugin which is disabled. (#76)
 
3.3.0 / 2017-04-15
==================
 
  * feat: always load extend/xx.unittest.js when run test (#75)
 
3.2.2 / 2017-04-14
==================
 
  * fix: don't replace plugin.default.js when serverEnv is default (#74)
 
3.2.1 / 2017-04-13
==================
 
  * fix: allow extend setter or getter alone (#73)
 
3.2.0 / 2017-04-11
==================
 
  * test: add testcase for appPlugins and customPlugins (#72)
  * fix: find the true callee bebind proxy (#70)
  * feat:expose appPlugins & customPlugins (#68)
  * feat: expose BaseContextClass (#71)
 
3.1.0 / 2017-04-10
==================
 
  * feat: to keep controller function attributes (#69)
 
3.0.1 / 2017-04-10
==================
 
  * fix: ensure deprecate display the right call stack (#67)
 
3.0.0 / 2017-03-07
==================
 
  * feat: [BREAKING_CHANGE] array will be overridden when load config (#64)
 
2.2.0 / 2017-02-27
==================
 
  * fix: improve getPathName (#62)
  * feat: FileLoader support caseStyle (#59)
  * fix: improve require es module (#61)
 
2.1.1 / 2017-02-17
==================
 
  * fix: define egg.Service and egg.Controller in constructor (#58)
 
2.1.0 / 2017-02-15
==================
 
  * feat: load plugin.default.js rather than plugin.js (#57)
  * refactor: seperate router api from app (#55)
 
2.0.1 / 2017-02-15
==================
 
  * fix: context loader cache independent in each request (#54)
 
2.0.0 / 2017-02-10
==================
 
  * feat: [BREAKING_CHANGE] can get error from .ready() (#53)
  * fix: make sure close once (#51)
  * feat: imporve error message of async controller (#52)
  * deps: remove unuse devDeps (#49)
  * feat: [BREAKING_CHANGE] all middleware support async function and common function (#50)
 
1.8.0 / 2017-02-06
==================
 
  * feat: app.beforeStart support async function same as beforeClose (#48)
  * test: fix test on windows (#47)
  * feat: add this.service in BaseContextClass (#46)
  * feat: add this.config in BaseContextClass (#44)
  * fix: execute beforeClose hooks in reverse order (#45)
 
1.7.0 / 2017-01-26
==================
 
  * feat: add app.beforeClose to register close function (#43)
 
1.6.0 / 2017-01-20
==================
 
  * feat: controller support class (#42)
 
1.5.1 / 2017-01-19
==================
 
  * fix: don't assert config.proxy (#41)
 
1.5.0 / 2017-01-17
==================
 
  * feat: plugin support optionalDependencies (#40)
 
1.4.0 / 2017-01-12
==================
 
  * refactor: support config/env instead of config/serverEnv (#37)
  * fix(router): support app.get(url, controllerName) (#38)
  * feat: support app.beforeStart (#39)
 
1.3.3 / 2016-12-28
==================
 
  * test: use assert instead of should
  * refactor: warn only for redefine the same package
 
1.3.2 / 2016-12-08
==================
 
  * fix: distinguish property cache (#35)
 
1.3.1 / 2016-12-03
==================
 
  * fix: router.url can't parse multi params right (#34)
 
1.3.0 / 2016-11-25
==================
 
  * feat: make app middlewares also support enable (#33)
 
1.2.0 / 2016-11-21
==================
 
  * refactor: don't use core middleware when enable = false (#32)
  * feat: core middlewares support enable/match/ignore options (#31)
 
1.1.0 / 2016-11-09
==================
 
  * refactor: extract getAppInfo that can be extend (#30)
 
1.0.1 / 2016-11-07
==================
 
  * chore: add pkg.files (#29)
 
1.0.0 / 2016-11-04
==================
 
  * feat: warn when redefine plugin (#28)
  * refactor: assert eggPath should be string
 
0.6.0 / 2016-10-28
==================
 
  * feat: app support export generator (#26)
 
0.5.0 / 2016-10-24
==================
 
  * feat: app.js/agent.js support async function (#18)
  * feat: add EGG_HOME to getHomedir for test (#25)
 
0.4.0 / 2016-10-24
==================
 
  * feat: support plugin.{env}.js (#20)
  * feat: support {env}.js when load extend (#21)
  * feat: app.close return a promise (#19)
  * feat: [BREAKING_CHANGE] env as prod when EGG_SERVER_ENV undefined & NODE_ENV prod (#24)
  * feat: warning when missing EGG_SERVER_ENV at production (#23)
  * test: fix homedir testcase on Windows (#22)
 
0.3.0 / 2016-10-13
==================
 
  * fix: always get the executor's homedir (#17)
  * doc: Plugable > Pluggable (#16)
  * test: delete type testcase (#15)
  * fix: can't get appConfig in appConfig (#14)
  * feat: add plugin.from where declare the plugin (#13)
  * feat: [BREAKING_CHANGE] remove compatible support loadExtend (#12)
 
0.2.1 / 2016-08-18
==================
 
  * fix: resolve the realpath of plugin path (#11)
 
0.2.0 / 2016-08-17
==================
 
  * feat: improve initializer && export Loader
 
0.1.0 / 2016-08-16
==================
 
  * feat: rename egg-loader to egg-core (#8)
  * refactor: rename to egg-core (#6)
  * doc: proofread readme documentation and correct english terms (#7)
  * refactor API (#5)
  * refactor: implement Loader instead of loading (#4)
 
0.0.3 / 2016-07-30
==================
 
  * test: add testcase (#3)
  * fix: don't print middleware options on start log (#2)
 
0.0.2 / 2016-07-16
==================
 
  * first version