服务端

billund在服务端时,充当是一个中间件的职责,是一个执行流程组件。对应的api也会与此紧密相关。

Billund.init

const koa = require('koa');
const Billund = require('billund');

const app = koa();

co(function*() {
    app.use(Billund.init({ ...options }));

Billund.init会返回一个GeneratorFunction的中间件函数,从而koa可以将billund注册成自身的一个中间件。

Billund.init 参数选项

  • actionDir

    必填,是一个绝对路径,billundcontroler所在的文件夹,billund会结合参数actionNameRegex遍历actionDir下的所有文件,将文件名匹配actionNameRegex作为billundcontroler文件注册。

  • actionNameRegex

    必填,正则表达式,与参数actionDir搭配使用,遍历actionDir下面的所有文件,将文件名匹配actionNameRegex作为billundcontroler文件注册。

      Billund.init({
          actionDir: path.resolve(__dirname, './action'),
          actionNameRegex: new RegExp('.(action).(js)$'),
          ...
      });
    
  • widgetDir

    必填,是一个绝对路径,server端的widget(通过webpack打包后)所在的文件夹,billund会结合参数widgetNameRegex,遍历widgetDir下所有文件,将文件名匹配widgetDir作为billund的server端组件进行注册。

  • widgetNameRegex

    必填,是一个正则表达式,与参数widgetNameRegex搭配使用,遍历widgetDir下所有文件,将文件名匹配widgetDir作为billund的server端组件进行注册。

      Billund.init({
          ...
          widgetDir: path.resolve(__dirname, './serverdist'),
          widgetNameRegex: /\.(js)$/,
          ...
      });
    
  • vendors

    必填,是一个Objectbillund同时支持'React'与'Vue'的渲染,在浏览器端使用的时候,会自动根据页面的组成引入不同的lib库。那么,vendors字段就是用来提供对应的lib库。vendors字段支持两个key,分别是reactvue,内容与staticResource的格式相同。 范例:

      Billund.init({
          ...
          vendors: {
              react: 'billund-example/react.js',
              vue: 'billund-example/vue.js'
          },
          ...
      });
    
  • renderPlugins

    选填,是一个Object,分别是headerbody,分别对应了renderPlugin渲染出来的内容所插入的位置。 renderPlugin的详细概念

Billund.updateWidgets

webpackServerCompiler.watch({}, (err, stats) => {
    ....
    // 提示Billund删除自己cache的内容
    Billund.updateWidgets();
});

更新服务端widget内容,一般与webpack的watch功能搭配使用。当发现widget源代码发生变更,即可调用这个方法更新服务端widget

results matching ""

    No results matching ""