npm install @alifd/fusion-site-sdk -S
自带 .d.ts
文件 支持 Typescript.
见帮助文档: https://fusion.design/help.html#/dev-create-site
import Client from '@alifd/fusion-site-sdk';
// 或
const Client = require('@alifd/fusion-site-sdk').default;
// 使用token 初始化token
const client = new Client('your token');
// 为了方便开发调试 可以让client链接到不同环境
const client = new Client({
token: 'your token',
env: 'prod', // 全部支持的环境见: https://github.com/alibaba-fusion/fusion-site-sdk/blob/master/src/type.ts
});
默认是外网prod
, 内网请使用aliprod
, 不同环境token不通用。
如果token过期 可以通过client实例的方法刷新token.
const client = new Client('your token');
client.setToken('new token');
const client = new Client('your token');
// 只读 不要修改
client.token; // 'your token'
client.env; // env
const user = client.user;
async () => {
const isValid = await user.checkToken();
// true 代表有效 false 代表 无效或者网络不通
}
async () => {
const sites = await user.getSites();
// sites Array<Site> 具体字段见 https://github.com/alibaba-fusion/fusion-site-sdk/blob/master/src/type.ts 的 IFusionSite
}
const {site} = client;
获取siteId需要先调用获取site的接口
async () => {
// blocks + components + scaffolds 总数不要超过20,数量太多需要切分 多次调用
const res = await site.addMaterials(siteId, {
blocks: ['npm包名@精确版本号', '@alifd/[email protected]'],
components: ['npm包名@精确版本号', '@alifd/[email protected]'],
scaffolds: ['npm包名@精确版本号', '@alifd/[email protected]'],
});
console.log(res); //成功 {success: true} 失败 {success: false, message: 'xxxxx'}
}
以下几个方法是对site.addMaterials
方法的封装,方便调用
async () => {
// 添加区块, 返回值同 site.addMaterials
const res = site.addBlocks(siteId, ['@alifd/[email protected]']);
// 添加组件, 返回值同 site.addMaterials
const res = site.addComponents(siteId, ['@alifd/[email protected]']);
// 添加模板, 返回值同 site.addMaterials
const res = site.addScaffolds(siteId, ['@alifd/[email protected]']);
}