入门
NASL SDK 是针对 NASL 投射编辑的无可视化的软件工具包,与用户在编辑器中的实际操作一致。CodeWave 智能开发平台的 IDE 和前端生成服务便是主要以它为核心开发的。
可运行在 现代浏览器 和 Node.js (>=14) 环境上。
🧐 NASL SDK 主要包含以下功能:
- NASL Object Model,即 NASL 语法树节点结合增删改查等行为的实例化对象,类似 HTML 之于 DOM、CSS 之于 CSSOM
- vertexsMap,一个 app 下所有点 id -> Vertex 的映射集
- 用于生成中间代码或 Vue 等最终代码的方法
- 实体拖拽的方法
- 请求、遍历树、去重名等工具库
- ...
NASL SDK 不包含以下功能:
- 应用本身的创建和删除
- 应用的发布
快速开始 ⏱️
我们以一个在 Node.js 环境运行的脚本为例,您可以在上面进行快速开发。这里推荐使用 TypeScript,它可以给您提供很方便的关于 NASL Object Model 的类型提示。
1. 准备
- 安装 Node.js (>=14)
- 在低代码平台的某个租户下创建一个应用
2. 初始化项目
- npm
- Yarn
- pnpm
git clone https://github.com/netease-lcap/nasl-examples
cd typescript-example
npm install
git clone https://github.com/netease-lcap/nasl-examples
cd typescript-example
yarn install
git clone https://github.com/netease-lcap/nasl-examples
cd typescript-example
pnpm install
3. 修改配置
初始示例的源代码是 src/quickstart.ts
,请在编辑器中打开它。
如果您用的是 VSCode,并且设置了 Shell Command in PATH,那么可以:
code src/quickstart.ts
需要首先修改文件中的低代码平台某租户的 URL、登录后的 cookie 以及需要访问的 appId:
nasl.config.baseURL = 'http://defaulttenant.qa-ci.lcap.group'; // 低代码平台某租户的 URL
nasl.config.cookie = 'authorization=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'; // 登录后的 document.cookie
const appId = '2bb0bb6a-0fdd-4440-b5d2-a7c041da18f1'; // 需要访问的 appId
也可以不用设置config.cookie
,调用以下登录方法:
await nasl.login('your username', 'your password');
4. 运行脚本
npx ts-node src/quickstart.ts
初始示例实现的功能是打印第一个页面 Vue 格式的内容。因此在 Console 中会看到如下结果:
<template>
<u-linear-layout style="height: 100vh;" alignment="center" type="flex" justify="center">
<u-linear-layout justify="center" direction="vertical">
...
示例说明
async function start() { // 里面大部分要用 await
const app = new nasl.App({ id: appId }); // 用 id 实例化一个 app
nasl.config.defaultApp = app; // 设置在默认配置中,目前这部分功能和撤销重做等绑定
await app.loadAll(); // 加载当前 app 所有内容
const page0 = app.firstWebService.pages[0]; // 取出前端的第一个页面
await page0.rootView.load(); // 获取该页面的内容
console.log(page0.rootView.toVue()); // 生成 Vue 代码
}
start().catch((e) => console.log(e.response && e.response.data)); // 有 error 提示