- @cloudbase/lowcode-builder是微搭用于将DSL构建为小程序和web的构建包。
- 例子在__tests__/build.ts下
- 主要是在node环境下运行。由于微信IDE的背景,提供了web构建出小程序版本的功能。两种方式如何使用见以下示例
使用示例:
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);
});
使用示例:
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;
}
});
}