Nuptial Predicament Mediation

    @micro-app/core

    0.4.1 • Public • Published

    Micro APP Core

    Pluggable micro application framework.

    基于webpack多入口的多仓库业务模块开发的插件应用框架核心库.

    Github Actions Coveralls Coverage Status NPM Version NPM Download

    Install

    yarn add @micro-app/core

    or

    npm install -D @micro-app/core

    Usage

    在项目 根目录 初始化创建一个 micro-app.config.js 文件

    npx micro-app init

    micro-app.config.js 配置文件进行编辑

    module.exports = {
        name: '@micro-app/demo',
        description: '',
        version: '0.0.1',
        type: '', // type 类型
    
        staticPath: '', // String | Array
    
        entry: { // 入口
            main: './test/index.js',
        },
    
        // htmls: [ // 输出模版配置
        //     {
        //         template: './test/index.js',
        //     },
        // ],
    
        alias: { // 别名配置
            api: '',
            config: {
                link: '',
                description: '配置',
            },
            service: {
                link: '',
                description: '接口',
                type: 'server',
            },
        },
    
        strict: true, // 严格强依赖模式
    
        micros: [ 'test' ], // 被注册的容器
    
        plugins: [ // 自定义插件
            // [{
            //     id: 'test',
            //     description: '这是test',
            //     link: __dirname + '/test/testPlugin',
            // }, {
            //     a: 1,
            // }],
        ],
    };

    package.json 中加载其他模块, 例如

        "dependencies": {
            "@micro-app/test": "git+ssh://git@github.com/micro-app.git#test"
        },

    项目中使用共享接口

    const api = require('@micro-demo/api');

    Plugins 扩展

    首先在 micro-app.config.js 中注册插件

    plugins: [
            [ // 1
                {
                    id: 'test', // 插件 id
                    description: '这是test', // 插件描述
                    link: __dirname + '/test/testPlugin.js',  // 插件地址
                }, { // 注册入的 opts
                    a: 1,
                }
            ],
        ],

    插件文件 testPlugin.js

    文件必须返回一个方法.

    module.exports = function(api, opts) {
        console.log(opts);
        api.onInitDone(item => {
            console.log('init Done', item);
        });
        api.onInitDone(() => {
            console.log('init Done2', api.getState('webpackConfig'));
        });
        api.onPluginInitDone(item => {
            console.log('onPluginInitDone', item);
        });
    };

    内置部分插件提供的 api 方法

    可通过如下命令进行动态查看

    npx micro-app show methods

    以提供的方法如下, System Build-in 为内置方法

    ╰─➤  npx micro-app show methods
      Plugin Methods:
         * onPluginInitDone            ( System Build-in )
         * beforeMergeConfig           ( System Build-in )
         * afterMergeConfig            ( System Build-in )
         * onInitWillDone              ( System Build-in )
         * onInitDone                  ( System Build-in )
         * modifyCommand               ( System Build-in )
         * onRunCommand                ( System Build-in )
         * modifyCommandHelp           ( System Build-in )

    其他

    已支持的终端命令行

    ╰─➤  npx micro-app help
    
    
      Usage: micro-app <command> [options]
    
    
      Commands:
          * show       ( show alias & shared list, etc. )
          * check      ( check all dependencies. )
          * version    ( show version )
          * start      ( runs server for production )
          * serve      ( runs server for development )
          * build      ( build for production )
          * update     ( update package.json )
          * deploy     ( sync commit status. )
    
    
      run micro-app help [command] for usage of a specific command.

    展示所有容器

    npx micro-app show micros

    展示所有前端共享接口

    npx micro-app show alias

    展示所有全局共享接口

    npx micro-app show shared

    Install

    npm i @micro-app/core

    DownloadsWeekly Downloads

    313

    Version

    0.4.1

    License

    MIT

    Unpacked Size

    167 kB

    Total Files

    73

    Last publish

    Collaborators

    • avatar