开始
unioc
是一个统一的 IoC (控制反转) 框架,使用 TypeScript 编写,旨在实现 TS 生态 IoC 框架的大一统。只需要一个简单的插件系统就接入任何TS生态的IoC
框架(如Nest.js
、Midway
),实现生态共用。
项目架构
目前,unioc
仍然在积极开发中,以下是unioc
的核心
和后端
部分架构图:
下面是unioc
的后端
部分架构图:
安装
通过包管理器安装 unioc
:
bash
# 使用 npm
npm install unioc
# 使用 yarn
yarn add unioc
# 使用 pnpm
pnpm add unioc
基本使用
创建基础应用
以下是一个简单的 Express 应用示例:
ts
import { ExpressApp } from 'unioc/web-express'
async function bootstrap() {
// 创建一个 Express 应用
const app = await new ExpressApp()
// 运行这个应用
await app.run(3000)
}
bootstrap()
集成 Nest.js
如果您已有 Nest.js 项目,可以轻松迁移到 unioc
:
ts
import process from 'node:process'
import { NestJS } from 'unioc/adapter-nestjs'
import { ExpressApp } from 'unioc/web-express'
import { AppModule } from './app.module'
async function bootstrap() {
// 创建一个 Express 应用
const app = await new ExpressApp()
// 使用 NestJS 适配器,并导入您的程序主模块
app.use(NestJS, {
imports: [AppModule],
})
// 运行这个应用
await app.run(process.env.PORT || 3000)
}
bootstrap()
统一的装饰器
unioc
提供了同时兼容 legacy 和 stage3 两种环境的装饰器工厂:
ts
import { defineClassDecorator } from 'unioc/decorator'
function MyClassDecorator() {
return defineClassDecorator({
onClassDecorate(target) {
// 实现您的逻辑
}
})
}
@MyClassDecorator()
class MyClass {}
插件系统
unioc
提供了一个类似 rollup 的插件系统,可以完整控制应用的启动、运行时和销毁过程。
下一步
NOTE
unioc
正在积极开发中,如有任何问题或建议,欢迎通过 GitHub Issues 或 Discord 与我们联系。