xboot
TypeScript icon, indicating that this package has built-in type declarations

0.5.3 • Public • Published

xboot

nodejs下引导加载模块工具.用于在当前项目,项目的engine包(父级包)以及plugin包中加载匹配的模块文件.类似eggjs中的FileLoader

Install

npm install xboot

Usage

xboot支持命令行,以及在代码中使用两种方式

xboot默认从执行目录下的xboot.config.js中,获取engine以及plugin的配置

// {cwd}/xboot.config.js

module.exports = {
    engine:'server-blocks',  //父engine包名称或包绝对路径
    plugin:'plugin.js'  //插件设置文件
//    pluginConfig:'plugin.config.js', //插件内配置文件(可选)
//  modes:['koa','grpc']    //匹配模式
};

xboot根据配置的plugin内容,来匹配的插件设置文件.根据插件设置文件,来选择加载模块文件时候,查找匹配的加载的插件包.

// {cwd}/plugin.js

exports.koa = {
    package:'xkoa',
    modes:['koa']  // 匹配模式
// dependencies:['xprovider'],   // 依赖插件
// optionalDependencies:['xprovider'],  // 可选依赖插件
//    config::'plugin.config.js', //插件内配置文件(可选)    
};

支持plugin包内通过配置文件定义插件依赖,以及匹配模式等属性

// {cwd}/node_modules/pluginA/plugin.js

module.exports = {
    modes:['koa']  // 匹配模式
    dependencies:['xprovider'],   // 依赖插件
    optionalDependencies:['xprovider'],  // 可选依赖插件
};

命令行

使用xboot加载引导模块文件

./node_modules/.bin/xboot

javascript

在代码中使用BootLoader匹配加载模块

简单加载模块

const {BootLoader} = requre('xboot');

const patterns = 'module.js';
const opts = {};
const loader = new BootLoader(patterns, opts);
loader.forEach(() => {});

自定义模块加载后续处理

const {BootLoader} = requre('xboot');

const patterns = 'module.js';
const opts = {};
const loader = new BootLoader(patterns, opts);
for(item of loader){
    const {path,module,cwd,filePath,plugin} = item;
    // 功能逻辑处理
}

Documentations

使用jsdoc生成注释文档

git clone https://github.com/kiba-zhao/xboot.git
cd xboot
npm install
npm run docs
open docs/index.html

n

License

MIT

Readme

Keywords

Package Sidebar

Install

npm i xboot

Weekly Downloads

4

Version

0.5.3

License

MIT

Unpacked Size

39.1 kB

Total Files

18

Last publish

Collaborators

  • kibamaple