@ayanaware/bento

中文文档
1.0.0-rc.29发布于 2022/06/05MITTypeScriptESM + CJS近 30 天下载 9145

用于解决复杂任务的模块运行时间框架

中文使用文档
文档目录9 节
  1. 目标
  2. 承诺
  3. 班多做的东西
  4. 本多不会的
  5. 安装
  6. 什么是本多组件?
  7. 怎样使用本多
  8. Bento 应用程序
  9. 证词

@ayanaware/本多 npm (scoped) Discord install size

文档 二. 支助 实例

Bento是一个应用框架,旨在帮助创建和维护g模块化项目.

目标

协助开发者使用模块化代码库中使用的共同模式. 在外面待着 他们的方式, 最低头痛, 最低债务.

承诺

  • 可读性 第一:本多的"法典"应该有详细记载,易于阅读.
  • 有限依赖:通过写出代码来解决问题,不添加依赖.
  • 测试所有的东西:在出道前抓住一些虫子.

班多做的东西

  • 可插件应用框架.
  • 配置:组件、事件、插件、属性、变量
  • 构成部分和插件生命周期管理
  • 一致部分 API
  • 定义严格,有见解,规则

本多不会的

  • 宾多 应 在浏览器中工作,但它不是一个网站框架.

安装

yarn add @ayanaware/bento
npm i @ayanaware/bento

什么是本多组件?

本多(Bentro indroduces)构件的概念. 组件是逻辑的块代码,所有代码合作为世界提供你的应用.

所有组件重现自己的组件API实例 。 构件API在所有构件之间是一致的,为构件相互说话提供了一种方式. 以及许多其他"生活质量"特征. 例如:依赖性解析和注射,可变注射,组件事件等等!

作为拇指的通则,组件不应承担更多的需要。 (IE:而不是有一个连接到Discord和处理消息的组件. 有两个,一个是连接和发布消息事件,一个是处理消息)

以下是本多元素的一个非常基本的例子:

import { Component, ComponentAPI } from '@ayanaware/bento';

export class Basic implements Component {
    // required for all components, must be unique
    public name = 'Basic';
    // this property becomes available after onLoad see ComponentAPI for more info
    public api!: ComponentAPI;

    // Optionally define other components we depend upon
    // Some decorators auto append to this array such as @Subscribe
    public dependencies: Array<Component> = [];

    // Lifecycle event, called right before component fully loaded
    public async onLoad() {
        console.log('Hello world!');
    }

    // Lifecycle event, called right before component is unloaded
    public async onUnload() {
        console.log('Goodbye world!');
    }
}

此示例的可运行版本可见于 胶片

怎样使用本多

从本多开始很简单 首先导入并插入本多和任何您想要使用的插件 。 然后简单地将插件添加到本多. 以下示例假设您在同一目录(相对)中有一个名为"组件"的目录.

import { Bento, EntityType, FSEntityLoader } from '@ayanaware/bento';

// Create a Bento instance
const bento = new Bento();

// Anonymous async function so we can use await
(async () => {
    // Create FSEntityLoader
    // NOTE: Keep in mind all FSEntityLoader does is
    // find components in a path, instantiates them and
    // calls Bento.addComponent() behind the scenes
    const fsel = new FSEntityLoader();
    await fsel.addDirectory([__dirname, 'components'], EntityType.COMPONENT);

    // Apply plugin to Bento.
    await bento.addPlugin(fsloader);

    // Verify that Application looks good to continue
    await bento.verify();
})().catch(e => {
    console.error(`Error while starting Bento:\n${e}`);
    process.exit(1);
});

Bento 应用程序

应用使得本多应用更加容易被拖住. 幕后风声 FSnentity Loader 用于在 ./plugins 财务报告和审定财务报表 ./components 页:1. 变量也使用变量FileLoader从 ../env.example.json 财务报告和审定财务报表 ../env.json。 。 。 . 最后,便当实例和上述插件在需要时会完全被曝光.

import { Application } from '@ayanaware/bento';

// Bento Application Helper
const app = new Application();

// Anonymous async function so we can use await
(async () => {
    // Default Variables are loaded from `../env.example.json`
    // Variables are loaded from `../env.json`
    // Plugins in `./plugins` are instantiated and added to Bento
    // Components in `./components` are instantiated and added to Bento
    // All this behavior can be modifed using cfg in Application constructor
    await app.start();

    // Must be called, calls `bento.verify();` and returns `ApplicationState`
    await app.verify();
})().catch(e => {
    console.error(`Error while starting Application:\n${e}`);
    process.exit(1);
});

更多可用实例 这里

证词

下面是几个关于使用本多的狂言!

到目前为止,本多只是 良好的记忆生产, 它的工作非常出色, 我们规模达到了40克, 10个硬块一个集群, 本多让生活与缩放 不那么可怕. - 普莱克西开发公司captchabot.xyz (英语)(中文(简体) )

版本与发布记录

@ayanaware/bento 共发布 30 个版本,首次发布于 2019/11/16;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.0.0-rc.29latest2022/06/054 年前
1.0.0-rc.282022/06/054 年前
1.0.0-rc.272022/06/054 年前
1.0.0-rc.262021/10/065 年前
1.0.0-rc.252021/09/085 年前
1.0.0-rc.242021/09/045 年前

关于 @ayanaware/bento 的常见问题

@ayanaware/bento 是什么?

用于解决复杂任务的模块运行时间框架

如何安装 @ayanaware/bento?

在项目目录运行 npm install @ayanaware/bento,或使用 pnpm add / yarn add / bun add。

@ayanaware/bento 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@ayanaware/bento 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@ayanaware/bento 可以商用吗?

@ayanaware/bento 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@ayanaware/bento 的下载量有多少?

根据 npm 官方下载统计,@ayanaware/bento 在 2026/10/08 – 2026/11/06 这 30 天内被下载 9,145 次,日均约 305 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@ayanaware/bento 还在维护吗?

最新版本 1.0.0-rc.29 发布于 2022/06/05(4 年前);至今共发布 30 个版本,其中过去 12 个月发布了 0 个;首次发布于 2019/11/16。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。