mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-01-19 22:21:54 +00:00
feat: support component's cdn urls only in editor
This commit is contained in:
parent
76435d4995
commit
841b04324f
@ -55,6 +55,7 @@ import {
|
|||||||
ComponentSchema,
|
ComponentSchema,
|
||||||
TransformStage,
|
TransformStage,
|
||||||
ActivityData,
|
ActivityData,
|
||||||
|
Package,
|
||||||
} from '@ali/lowcode-types';
|
} from '@ali/lowcode-types';
|
||||||
import { BuiltinSimulatorRenderer } from './renderer';
|
import { BuiltinSimulatorRenderer } from './renderer';
|
||||||
import clipboard from '../designer/clipboard';
|
import clipboard from '../designer/clipboard';
|
||||||
@ -63,10 +64,11 @@ import { Project } from '../project';
|
|||||||
import { Scroller } from '../designer/scroller';
|
import { Scroller } from '../designer/scroller';
|
||||||
import { isElementNode, isDOMNodeVisible } from '../utils/misc';
|
import { isElementNode, isDOMNodeVisible } from '../utils/misc';
|
||||||
|
|
||||||
export interface LibraryItem {
|
export interface LibraryItem extends Package{
|
||||||
package: string;
|
package: string;
|
||||||
library: string;
|
library: string;
|
||||||
urls?: Asset;
|
urls?: Asset;
|
||||||
|
editUrls?: Asset;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface DeviceStyleProps {
|
export interface DeviceStyleProps {
|
||||||
@ -325,13 +327,13 @@ export class BuiltinSimulatorHost implements ISimulatorHost<BuiltinSimulatorProp
|
|||||||
* urls:Array 资源cdn地址,必须是umd类型,可以是.js或者.css
|
* urls:Array 资源cdn地址,必须是umd类型,可以是.js或者.css
|
||||||
* library:String umd包直接导出的name
|
* library:String umd包直接导出的name
|
||||||
*/
|
*/
|
||||||
buildLibrary(library) {
|
buildLibrary(library?: LibraryItem[]) {
|
||||||
library = library || (this.get('library') as LibraryItem[]);
|
const _library = library || (this.get('library') as LibraryItem[]);
|
||||||
const libraryAsset: AssetList = [];
|
const libraryAsset: AssetList = [];
|
||||||
const libraryExportList = [];
|
const libraryExportList: string[] = [];
|
||||||
|
|
||||||
if (library) {
|
if (_library && _library.length) {
|
||||||
library.forEach((item) => {
|
_library.forEach((item) => {
|
||||||
this.libraryMap[item.package] = item.library;
|
this.libraryMap[item.package] = item.library;
|
||||||
if (item.async) {
|
if (item.async) {
|
||||||
this.asyncLibraryMap[item.package] = item;
|
this.asyncLibraryMap[item.package] = item;
|
||||||
@ -341,7 +343,9 @@ export class BuiltinSimulatorHost implements ISimulatorHost<BuiltinSimulatorProp
|
|||||||
`Object.defineProperty(window,'${item.exportName}',{get:()=>window.${item.library}});`,
|
`Object.defineProperty(window,'${item.exportName}',{get:()=>window.${item.library}});`,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (item.urls) {
|
if (item.editUrls) {
|
||||||
|
libraryAsset.push(item.editUrls);
|
||||||
|
} else if (item.urls) {
|
||||||
libraryAsset.push(item.urls);
|
libraryAsset.push(item.urls);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -365,7 +369,6 @@ export class BuiltinSimulatorHost implements ISimulatorHost<BuiltinSimulatorProp
|
|||||||
this._contentWindow = iframe.contentWindow!;
|
this._contentWindow = iframe.contentWindow!;
|
||||||
this._contentDocument = this._contentWindow.document;
|
this._contentDocument = this._contentWindow.document;
|
||||||
|
|
||||||
const library = this.get('library') as LibraryItem[];
|
|
||||||
const libraryAsset: AssetList = this.buildLibrary();
|
const libraryAsset: AssetList = this.buildLibrary();
|
||||||
|
|
||||||
const vendors = [
|
const vendors = [
|
||||||
|
|||||||
@ -5,8 +5,11 @@ import { Snippet, ComponentMetadata } from './metadata';
|
|||||||
export interface Package { // 应该被编辑器默认加载,定义组件大包及external资源的信息
|
export interface Package { // 应该被编辑器默认加载,定义组件大包及external资源的信息
|
||||||
package: string; // 包名
|
package: string; // 包名
|
||||||
version: string; // 包版本号
|
version: string; // 包版本号
|
||||||
urls?: string[] | null; // 组件打包后的CDN列表,包含js和css
|
urls?: string[] | any; // 组件渲染态视图打包后的 CDN url 列表,包含 js 和 css
|
||||||
|
editUrls?: string[] | any; // 组件编辑态视图打包后的 CDN url 列表,包含 js 和 css
|
||||||
library: string; // 作为全局变量引用时的名称,和webpack output.library字段含义一样,用来定义全局变量名
|
library: string; // 作为全局变量引用时的名称,和webpack output.library字段含义一样,用来定义全局变量名
|
||||||
|
async?: boolean,
|
||||||
|
exportName?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ComponentCategory { // 组件分类
|
export interface ComponentCategory { // 组件分类
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user