Webpack IOC ES6依赖注入器

Webpack 的依赖注入器太少见了,webpack-ioc-es6算是我最近用过比较顺手的一个。它基于 ES6 语法,配合 Webpack 打包,做依赖注入挺自然的,装饰器写起来也蛮清爽,逻辑清晰,不绕弯子。

@inject这种装饰器写法,不但省事,还让构造函数更干净。比如你要注入一个Service类,写成:

@inject(Service)
class MyClass {
  constructor(service) {
    this.service = service;
  }
}

嗯,就这么一行,省去自己手动实例化的麻烦,响应也快,测试也更方便。尤其写单元测试时,直接换个 mock 扔进去就行。

它的原理也不复杂,Webpack 打包时扫描用到装饰器的类,动态生成注入代码,等你项目跑起来,依赖关系都已经安排妥了。你不用手动管谁是谁的依赖,框架自动帮你兜底。

框架本身还带了个简单项目示例,结构清楚,文档也够用,照着改一改就能跑。适合不想写一堆手动new和注入逻辑的你,尤其在大型项目里,这种方式对扩展性提升。

如果你平时习惯用 Webpack 打包 ES6 模块,又项目结构更松耦合,试试webpack-ioc-es6真的还挺香的。装饰器别看现在还在提案里,配合 Babel 或者 ts-loader 照样能跑得飞快。

另外推荐几篇相关内容,顺手看看也不错:

如果你正好在搭前端架构,又想省点力气管理依赖关系,不妨试试这个,挺省心。

zip
webpack-ioc-es6-master.zip 预估大小:28个文件
folder
webpack-ioc-es6-master 文件夹
file
.jshintrc 757B
file
.gitignore 28B
file
package.json 1KB
folder
src 文件夹
folder
games 文件夹
folder
g1 文件夹
file
parent.spec.js 1KB
file
part.js 64B
file
parent.js 196B
folder
g2 文件夹
file
y.js 57B
file
x.spec.js 353B
file
x.js 172B
folder
g0 文件夹
file
c.js 150B
file
b.js 244B
file
b.spec.js 1KB
file
a.js 243B
file
c.spec.js 396B
file
a.spec.js 1022B
folder
di 文件夹
file
util.js 740B
file
providers.js 5KB
file
index.js 204B
file
profiler.js 2KB
file
testing.js 2KB
file
annotations.js 3KB
file
injector.js 10KB
file
karma.conf.js 3KB
file
webpack.config.js 2KB
file
.travis.yml 118B
file
gulpfile.js 2KB
file
README.md 265B
file
npm-debug.log 23KB
zip 文件大小:22.78KB