## 本包说明
- @cloudbase/lowcode-builder是微搭用于将DSL构建为小程序和web的构建包。
- 例子在__tests__/build.ts下
- 主要是在node环境下运行。由于微信IDE的背景，提供了web构建出小程序版本的功能。两种方式如何使用见以下示例

## node端使用
使用示例：
```javascript
import { buildWedaApp } from '@cloudbase/lowcode-builder';
import { simpleData as data, options } from './data';
import path from 'path';
import fs from 'fs-extra';

const outPath = path.resolve(__dirname, '.temp');
fs.emptyDirSync(outPath);
buildWedaApp({
  ...data,
  ...options,
  buildTypeList: ['web' as any],
  output: { path: outPath },
}).then((dir) => {
  console.log(dir);
});
```

## web端使用
使用示例：
```javascript
export async function builderToZip(builderData: any, selectedPageId: string, outputPath: string) {
  return import('@cloudbase/lowcode-builder/lib/builder.web').then(async (result) => {
    try {
      console.log('rose builderToZip import result ', result);
      const { buildWedaApp, getFiles, fileToZip, strToBuf } = result;

      // 1、构建到指定路径，返回构建文件存放路径
      const buildPath = await buildWedaApp(builderData);

      // 2、从指定路径获取文件
      const files = await getFiles(buildPath, {}, `${outputPath}/`);

      // 3、修改app.json入口地址
      const finalFiles = setEntryPage(files, selectedPageId, strToBuf);

      // 4、得到zip包，返回主进程，传给微信hybrid
      const zipFiles = await fileToZip(finalFiles, 'arraybuffer'); // blob or arraybuffer

      return {
        zipFiles,
        strFiles: '', // TODO暂时保留，用于返回zip包内容
      };
    } catch (err) {
      error('builder.worker.js->builderToZip->catch：', err);
      throw err;
    }
  });
}
```


