From fa4dab1d532acf77b599adabbf056efdd1ea6e90 Mon Sep 17 00:00:00 2001 From: chilingling Date: Fri, 7 Jun 2024 20:54:05 -0700 Subject: [PATCH 1/3] feat: remove plugin from default registry --- designer-demo/registry.js | 152 ++++++++----------- designer-demo/src/main.js | 5 +- designer-demo/src/preview.js | 5 +- packages/design-core/index.js | 2 + packages/design-core/registry.js | 54 +------ packages/design-core/src/init.js | 9 +- packages/design-core/src/preview/src/App.vue | 5 - packages/design-core/src/preview/src/main.js | 11 +- 8 files changed, 84 insertions(+), 159 deletions(-) diff --git a/designer-demo/registry.js b/designer-demo/registry.js index 74a2a839ee..51d460149d 100644 --- a/designer-demo/registry.js +++ b/designer-demo/registry.js @@ -10,6 +10,39 @@ * */ +import { + Breadcrumb, + Fullscreen, + Lang, + Checkinout, + Logo, + Media, + Redoundo, + Save, + Clean, + Preview, + GenerateVue, + Refresh, + Collaboration, + Setting, + Materials, + Data, + Script, + Tree, + Help, + Schema, + Page, + I18n, + Bridge, + Block, + Datasource, + Robot, + Props, + Events, + Styles, +} from '@opentiny/tiny-engine' + + export default { config: { id: 'engine.config', @@ -18,99 +51,40 @@ export default { }, layout: { id: 'engine.layout' }, toolbars: [ - { - id: 'engine.toolbars.logo' - }, - { - id: 'engine.toolbars.breadcrumb' - }, - { - id: 'engine.toolbars.media' - }, - { - id: 'engine.toolbars.collaboration' - }, - { - id: 'engine.toolbars.clean' - }, - { - id: 'engine.toolbars.refresh' - }, - { - id: 'engine.toolbars.save' - }, - { - id: 'engine.toolbars.generate-vue' - }, - { - id: 'engine.toolbars.preview' - }, - { - id: 'engine.toolbars.redoundo' - }, - { - id: 'engine.toolbars.fullscreen' - }, - { - id: 'engine.toolbars.lock' - }, - { - id: 'engine.toolbars.setting' - }, - { - id: 'engine.toolbars.lang' - } + Logo, + Breadcrumb, + Media, + Collaboration, + Clean, + Refresh, + Save, + GenerateVue, + Preview, + Redoundo, + Fullscreen, + Checkinout, + Setting, + Lang ], plugins: [ - { - id: 'engine.plugins.materials' - }, - { - id: 'engine.plugins.outlinetree' - }, - { - id: 'engine.plugins.appmanage' - }, - { - id: 'engine.plugins.blockmanage' - }, - { - id: 'engine.plugins.collections' - }, - { - id: 'engine.plugins.bridge' - }, - { - id: 'engine.plugins.i18n' - }, - { - id: 'engine.plugins.pagecontroller' - }, - { - id: 'engine.plugins.state' - }, - { - id: 'engine.plugins.schema' - }, - { - id: 'engine.plugins.editorhelp' - }, - { - id: 'engine.plugins.robot' - } + Materials, + Tree, + Page, + Block, + Datasource, + Bridge, + I18n, + Script, + Data, + Schema, + Help, + Robot ], dsls: [{ id: 'engine.dsls.dslvue' }], settings: [ - { - id: 'engine.setting.props' - }, - { - id: 'engine.setting.styles' - }, - { - id: 'engine.setting.event' - } + Props, + Styles, + Events ], - canvas: {}, - utils: { id: 'engine.utils' } + canvas: {} } diff --git a/designer-demo/src/main.js b/designer-demo/src/main.js index 6defe9df2a..58f8c839d1 100644 --- a/designer-demo/src/main.js +++ b/designer-demo/src/main.js @@ -12,8 +12,9 @@ // 导入@opentiny/tiny-engine时,内部的依赖包也会逐个导入,可能会执行useComplie,此时需要templateHashMap。所以需要先执行一次defineEntry import { registry } from './defineEntry.js' -import { init } from '@opentiny/tiny-engine' +import { init, defaultRegistry } from '@opentiny/tiny-engine' +import { mergeRegistry } from '@opentiny/tiny-engine-entry' import { configurators } from './configurators.js' import 'virtual:svg-icons-register' -init({ registry, configurators }) +init({ registry: mergeRegistry(registry, defaultRegistry), configurators }) diff --git a/designer-demo/src/preview.js b/designer-demo/src/preview.js index b7f5b6f38d..c286c889c3 100644 --- a/designer-demo/src/preview.js +++ b/designer-demo/src/preview.js @@ -10,6 +10,7 @@ * */ -import { initPreview } from '@opentiny/tiny-engine' +import { initPreview, defaultRegistry } from '@opentiny/tiny-engine' +import { mergeRegistry } from '@opentiny/tiny-engine-entry' -initPreview() +initPreview({ registry: mergeRegistry({ config: { id : 'engine.config', theme: 'light' } }, defaultRegistry) }) diff --git a/packages/design-core/index.js b/packages/design-core/index.js index 8b7e1fa1ae..95d71dec20 100644 --- a/packages/design-core/index.js +++ b/packages/design-core/index.js @@ -32,3 +32,5 @@ export { default as Events } from '@opentiny/tiny-engine-setting-events' export { default as Styles } from '@opentiny/tiny-engine-setting-styles' export { initPreview } from './src/preview/src/main' + +export { default as defaultRegistry } from './registry' diff --git a/packages/design-core/registry.js b/packages/design-core/registry.js index 4824fa66fb..5572014dab 100644 --- a/packages/design-core/registry.js +++ b/packages/design-core/registry.js @@ -10,38 +10,6 @@ * */ -import Breadcrumb from '@opentiny/tiny-engine-toolbar-breadcrumb' -import Fullscreen from '@opentiny/tiny-engine-toolbar-fullscreen' -import Lang from '@opentiny/tiny-engine-toolbar-lang' -import Checkinout from '@opentiny/tiny-engine-toolbar-checkinout' -import Logo from '@opentiny/tiny-engine-toolbar-logo' -import Media from '@opentiny/tiny-engine-toolbar-media' -import Redoundo from '@opentiny/tiny-engine-toolbar-redoundo' -import Save from '@opentiny/tiny-engine-toolbar-save' -import Clean from '@opentiny/tiny-engine-toolbar-clean' -import Preview from '@opentiny/tiny-engine-toolbar-preview' -import GenerateVue from '@opentiny/tiny-engine-toolbar-generate-vue' -import Refresh from '@opentiny/tiny-engine-toolbar-refresh' -import Collaboration from '@opentiny/tiny-engine-toolbar-collaboration' -import Setting from '@opentiny/tiny-engine-toolbar-setting' - -import Materials from '@opentiny/tiny-engine-plugin-materials' -import Data from '@opentiny/tiny-engine-plugin-data' -import Script from '@opentiny/tiny-engine-plugin-script' -import Tree from '@opentiny/tiny-engine-plugin-tree' -import Help from '@opentiny/tiny-engine-plugin-help' -import Schema from '@opentiny/tiny-engine-plugin-schema' -import Page from '@opentiny/tiny-engine-plugin-page' -import I18n from '@opentiny/tiny-engine-plugin-i18n' -import Bridge from '@opentiny/tiny-engine-plugin-bridge' -import Block from '@opentiny/tiny-engine-plugin-block' -import Datasource from '@opentiny/tiny-engine-plugin-datasource' -import Robot from '@opentiny/tiny-engine-plugin-robot' - -import Props from '@opentiny/tiny-engine-setting-props' -import Events from '@opentiny/tiny-engine-setting-events' -import Styles from '@opentiny/tiny-engine-setting-styles' - export default { config: { id: 'engine.config', @@ -98,25 +66,5 @@ export default { lifeCycleTips: { Vue: '通过Vue解构出来的方法都可以在setup这里使用,比如watch、computed、watchEffect等' } - }, - layout: { id: 'engine.layout' }, - toolbars: [ - Logo, - Breadcrumb, - Media, - Collaboration, - Clean, - Refresh, - Save, - GenerateVue, - Preview, - Redoundo, - Fullscreen, - Checkinout, - Setting, - Lang - ], - plugins: [Materials, Tree, Page, Block, Datasource, Bridge, I18n, Script, Data, Schema, Help, Robot], - settings: [Props, Styles, Events], - canvas: {} + } } diff --git a/packages/design-core/src/init.js b/packages/design-core/src/init.js index 59a5316a51..742ab244b8 100644 --- a/packages/design-core/src/init.js +++ b/packages/design-core/src/init.js @@ -18,7 +18,7 @@ import { injectGlobalComponents } from '@opentiny/tiny-engine-common' import { initHttp } from '@opentiny/tiny-engine-http' import TinyThemeTool from '@opentiny/vue-theme/theme-tool' import { tinySmbTheme } from '@opentiny/vue-theme/theme' // SMB 主题 -import { defineEntry, mergeRegistry } from '@opentiny/tiny-engine-entry' +import { defineEntry } from '@opentiny/tiny-engine-entry' import App from './layout/App.vue' import defaultRegistry from '../registry.js' import { registerConfigurators } from './registerConfigurators' @@ -26,17 +26,16 @@ import { registerConfigurators } from './registerConfigurators' const defaultLifeCycles = { beforeAppCreate: ({ registry }) => { // 合并用户自定义注册表 - const newRegistry = mergeRegistry(registry, defaultRegistry) if (process.env.NODE_ENV === 'development') { console.log('default registry:', defaultRegistry) // eslint-disable-line console.log('merged registry:', registry) // eslint-disable-line } // 在common层注入合并后的注册表 - defineEntry(newRegistry) + defineEntry(registry) // 加载主题样式,尽早加载 - import(`./theme/${newRegistry.config.theme}.js`) + import(`./theme/${registry.config.theme}.js`) initHttp({ env: import.meta.env }) @@ -48,7 +47,7 @@ const defaultLifeCycles = { } // 这里暴露到 window 是为了让 canvas 可以读取 - window.TinyGlobalConfig = newRegistry.config || {} + window.TinyGlobalConfig = registry.config || {} }, appCreated: ({ app }) => { initSvgs(app) diff --git a/packages/design-core/src/preview/src/App.vue b/packages/design-core/src/preview/src/App.vue index d1ccc23338..d4384ac8e8 100644 --- a/packages/design-core/src/preview/src/App.vue +++ b/packages/design-core/src/preview/src/App.vue @@ -4,15 +4,10 @@