From a285038a941ed5c19fdb974187798d4c1af36e3a Mon Sep 17 00:00:00 2001 From: chilingling <26962197+chilingling@users.noreply.github.com> Date: Fri, 7 Jun 2024 18:43:31 -0700 Subject: [PATCH 01/13] feat: migrate public resource (#557) --- designer-demo/public/favicon.ico | Bin 0 -> 547 bytes .../public/mock/bundle.json | 0 packages/design-core/public/favicon.ico | Bin 4286 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 designer-demo/public/favicon.ico rename {packages/design-core => designer-demo}/public/mock/bundle.json (100%) delete mode 100644 packages/design-core/public/favicon.ico diff --git a/designer-demo/public/favicon.ico b/designer-demo/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..826d98acb7e2a268f6ede5f86bcec188adda00f8 GIT binary patch literal 547 zcmV+;0^I!o0096201yxW0096P01W~F02TlM0EtjeM-2)Z3IG5A4M|8uQUCw|5C8xG z5C{eU001BJ|6u?C00DDSM?wIu&K&6g000DMK}|sb0I`n?{9y$E000SaNLh0L01m?d z01m?e$8V@)0004^Nkl0>@szKI52G_Gn(RYh3-}=pQJU*Fc(8z$4djtx_PQ2$-~v(Ol@3g7cVKd-0~E&1 zNKuEtg6ae$%guxX?sgIEIsrqgO-OIFAhX$qu}a(Wqa_^%a;j4!vZTj`*IJNXZ^7u6 z3q-}142UlqkX&g1g>f^!+<@?+?$ihuv_bNcWeXa?AP%B}c@(S9oO#RV1Ac;VAHuIu7za`G-X03$ zCS8$w5ll5CS@GKt?dfJ5M7aZKgv}WCeTWpS8a`R^eh1onNv=Ogvf3x?4^a(ow(fBs lrV+1yr@(~XD;|FkWAB{ddF@ILW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S From ee82ccc6e708130bc372d89e790b1b1fafe576d5 Mon Sep 17 00:00:00 2001 From: chilingling <26962197+chilingling@users.noreply.github.com> Date: Fri, 7 Jun 2024 18:44:18 -0700 Subject: [PATCH 02/13] feat: reexport plugin from tiny-engine (#556) --- packages/design-core/index.js | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/packages/design-core/index.js b/packages/design-core/index.js index 1c4e700fc0..4a662159df 100644 --- a/packages/design-core/index.js +++ b/packages/design-core/index.js @@ -1 +1,32 @@ export { init } from './src/init' + +// reexport all plugin, user can import ondemand +export { default as Breadcrumb } from '@opentiny/tiny-engine-toolbar-breadcrumb' +export { default as Fullscreen } from '@opentiny/tiny-engine-toolbar-fullscreen' +export { default as Lang } from '@opentiny/tiny-engine-toolbar-lang' +export { default as Checkinout } from '@opentiny/tiny-engine-toolbar-checkinout' +export { default as Logo } from '@opentiny/tiny-engine-toolbar-logo' +export { default as Media } from '@opentiny/tiny-engine-toolbar-media' +export { default as Redoundo } from '@opentiny/tiny-engine-toolbar-redoundo' +export { default as Save } from '@opentiny/tiny-engine-toolbar-save' +export { default as Clean } from '@opentiny/tiny-engine-toolbar-clean' +export { default as Preview } from '@opentiny/tiny-engine-toolbar-preview' +export { default as GenerateVue } from '@opentiny/tiny-engine-toolbar-generate-vue' +export { default as Refresh } from '@opentiny/tiny-engine-toolbar-refresh' +export { default as Collaboration } from '@opentiny/tiny-engine-toolbar-collaboration' +export { default as Setting } from '@opentiny/tiny-engine-toolbar-setting' +export { default as Materials } from '@opentiny/tiny-engine-plugin-materials' +export { default as Data } from '@opentiny/tiny-engine-plugin-data' +export { default as Script } from '@opentiny/tiny-engine-plugin-script' +export { default as Tree } from '@opentiny/tiny-engine-plugin-tree' +export { default as Help } from '@opentiny/tiny-engine-plugin-help' +export { default as Schema } from '@opentiny/tiny-engine-plugin-schema' +export { default as Page } from '@opentiny/tiny-engine-plugin-page' +export { default as I18n } from '@opentiny/tiny-engine-plugin-i18n' +export { default as Bridge } from '@opentiny/tiny-engine-plugin-bridge' +export { default as Block } from '@opentiny/tiny-engine-plugin-block' +export { default as Datasource } from '@opentiny/tiny-engine-plugin-datasource' +export { default as Robot } from '@opentiny/tiny-engine-plugin-robot' +export { default as Props } from '@opentiny/tiny-engine-setting-props' +export { default as Events } from '@opentiny/tiny-engine-setting-events' +export { default as Styles } from '@opentiny/tiny-engine-setting-styles' From f1f8478d29e13fcbad4810cf63b569f9935919ab Mon Sep 17 00:00:00 2001 From: Hexqi Date: Sat, 8 Jun 2024 09:49:41 +0800 Subject: [PATCH 03/13] feat: add vite-config package (#558) * feat: add vite config package --- designer-demo/package.json | 7 +- designer-demo/src/main.js | 1 + designer-demo/vite.config.js | 7 +- packages/build/vite-config/index.js | 2 + packages/build/vite-config/package.json | 65 +++++++++++++++++++ .../vite-config/src/default-config.js} | 16 ++--- .../vite-config/src}/externalDeps.js | 0 .../src}/localCdnFile/copyBundleDeps.js | 0 .../src}/localCdnFile/copyImportMap.js | 0 .../src}/localCdnFile/copyPreviewImportMap.js | 0 .../vite-config/src}/localCdnFile/index.js | 0 .../src}/localCdnFile/locateCdnNpmInfo.js | 0 .../src}/localCdnFile/replaceImportPath.mjs | 0 .../vite-config/src}/localCdnFile/utils.js | 0 .../vite-plugins/configureServerAddProxy.js | 0 .../vite-plugins/installPackageTemporary.js | 0 packages/build/vite-config/vite.config.js | 32 +++++++++ packages/design-core/package.json | 9 +-- packages/design-core/src/init.js | 2 - 19 files changed, 124 insertions(+), 17 deletions(-) create mode 100644 packages/build/vite-config/index.js create mode 100644 packages/build/vite-config/package.json rename packages/{design-core/vite.config.js => build/vite-config/src/default-config.js} (98%) rename packages/{design-core/scripts => build/vite-config/src}/externalDeps.js (100%) rename packages/{design-core/scripts => build/vite-config/src}/localCdnFile/copyBundleDeps.js (100%) rename packages/{design-core/scripts => build/vite-config/src}/localCdnFile/copyImportMap.js (100%) rename packages/{design-core/scripts => build/vite-config/src}/localCdnFile/copyPreviewImportMap.js (100%) rename packages/{design-core/scripts => build/vite-config/src}/localCdnFile/index.js (100%) rename packages/{design-core/scripts => build/vite-config/src}/localCdnFile/locateCdnNpmInfo.js (100%) rename packages/{design-core/scripts => build/vite-config/src}/localCdnFile/replaceImportPath.mjs (100%) rename packages/{design-core/scripts => build/vite-config/src}/localCdnFile/utils.js (100%) rename packages/{design-core/scripts => build/vite-config/src}/vite-plugins/configureServerAddProxy.js (100%) rename packages/{design-core/scripts => build/vite-config/src}/vite-plugins/installPackageTemporary.js (100%) create mode 100644 packages/build/vite-config/vite.config.js diff --git a/designer-demo/package.json b/designer-demo/package.json index 0c21c952a3..51c607e8b8 100644 --- a/designer-demo/package.json +++ b/designer-demo/package.json @@ -11,11 +11,16 @@ "vue": "^3.4.21", "@opentiny/tiny-engine": "workspace:^", "@opentiny/tiny-engine-entry": "workspace:^", - "@opentiny/tiny-engine-configurator": "workspace:*" + "@opentiny/tiny-engine-configurator": "workspace:*", + "@opentiny/vue": "~3.14.0", + "@opentiny/vue-design-smb": "~3.14.0", + "@opentiny/vue-renderless": "~3.14.0", + "@opentiny/vue-theme": "~3.14.0" }, "devDependencies": { "@vitejs/plugin-vue": "^5.0.4", "vite": "^5.2.7", + "@opentiny/tiny-engine-vite-config": "workspace:^", "@opentiny/tiny-engine-vite-plugin-meta-comments": "workspace:^" } } diff --git a/designer-demo/src/main.js b/designer-demo/src/main.js index 01e6d4f166..6defe9df2a 100644 --- a/designer-demo/src/main.js +++ b/designer-demo/src/main.js @@ -14,5 +14,6 @@ import { registry } from './defineEntry.js' import { init } from '@opentiny/tiny-engine' import { configurators } from './configurators.js' +import 'virtual:svg-icons-register' init({ registry, configurators }) diff --git a/designer-demo/vite.config.js b/designer-demo/vite.config.js index becb8ba82d..81ff3bf2a4 100644 --- a/designer-demo/vite.config.js +++ b/designer-demo/vite.config.js @@ -1,9 +1,12 @@ import path from 'node:path' import { defineConfig, mergeConfig } from 'vite' -import getDefaultConfig from '@opentiny/tiny-engine/vite.config.js' +import { getDefaultConfig } from '@opentiny/tiny-engine-vite-config' export default defineConfig((options) => { - const defaultConfig = getDefaultConfig(options) + const extOptions = { + iconDirs: [path.resolve(__dirname, './node_modules/@opentiny/tiny-engine/assets/')] + } + const defaultConfig = getDefaultConfig(options, extOptions) const devAlias = { '@opentiny/tiny-engine-controller/js': path.resolve(__dirname, '../packages/controller/js'), diff --git a/packages/build/vite-config/index.js b/packages/build/vite-config/index.js new file mode 100644 index 0000000000..9c7275d33f --- /dev/null +++ b/packages/build/vite-config/index.js @@ -0,0 +1,2 @@ +export { default as getDefaultConfig } from './src/default-config.js' +export { default as metaCommentsPlugin } from '@opentiny/tiny-engine-vite-plugin-meta-comments' diff --git a/packages/build/vite-config/package.json b/packages/build/vite-config/package.json new file mode 100644 index 0000000000..057aba73d2 --- /dev/null +++ b/packages/build/vite-config/package.json @@ -0,0 +1,65 @@ +{ + "name": "@opentiny/tiny-engine-vite-config", + "version": "1.0.0", + "description": "", + "type": "module", + "main": "./index.js", + "module": "./index.js", + "files": [ + "dist" + ], + "scripts": { + "build": "vite build" + }, + "dependencies": { + "@babel/core": "~7.23.2", + "@babel/generator": "~7.23.2", + "@babel/parser": "~7.23.2", + "@babel/traverse": "~7.23.2", + "@opentiny/tiny-engine-vite-plugin-meta-comments": "workspace:^", + "@babel/eslint-parser": "^7.21.3", + "@esbuild-plugins/node-globals-polyfill": "^0.2.3", + "@esbuild-plugins/node-modules-polyfill": "^0.2.2", + "@types/node": "^18.0.0", + "@vitejs/plugin-vue": "^4.2.3", + "@vitejs/plugin-vue-jsx": "^3.1.0", + "assert": "^2.0.0", + "buffer": "^6.0.3", + "cross-env": "^7.0.3", + "esbuild-plugin-copy": "^2.1.1", + "eslint": "^8.38.0", + "eslint-plugin-vue": "^8.0.0", + "fs-extra": "^10.1.0", + "husky": "^8.0.0", + "lerna": "^7.2.0", + "less": "^4.1.2", + "lint-staged": "^13.2.0", + "path": "^0.12.7", + "rimraf": "^3.0.2", + "rollup-plugin-polyfill-node": "^0.12.0", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-visualizer": "^5.8.3", + "shelljs": "^0.8.5", + "svg-sprite-loader": "^6.0.11", + "vite": "^4.3.7", + "vite-plugin-monaco-editor": "^1.1.0", + "vite-plugin-static-copy": "^0.16.0", + "vite-plugin-svg-icons": "^2.0.1", + "vue-eslint-parser": "^8.0.1" + }, + "keywords": [], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "https://github.com/opentiny/tiny-engine", + "directory": "packages/build/vite-config" + }, + "bugs": { + "url": "https://github.com/opentiny/tiny-engine/issues" + }, + "author": "OpenTiny Team", + "license": "MIT", + "homepage": "https://opentiny.design/tiny-engine" +} diff --git a/packages/design-core/vite.config.js b/packages/build/vite-config/src/default-config.js similarity index 98% rename from packages/design-core/vite.config.js rename to packages/build/vite-config/src/default-config.js index 6ab4fd3d6b..ebd6c63236 100644 --- a/packages/design-core/vite.config.js +++ b/packages/build/vite-config/src/default-config.js @@ -8,7 +8,7 @@ import nodeModulesPolyfillPluginCjs from '@esbuild-plugins/node-modules-polyfill import nodePolyfill from 'rollup-plugin-polyfill-node' import esbuildCopy from 'esbuild-plugin-copy' import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' -import { importmapPlugin } from './scripts/externalDeps.js' +import { importmapPlugin } from './externalDeps.js' import visualizerCjs from 'rollup-plugin-visualizer' import { fileURLToPath } from 'node:url' import generateComment from '@opentiny/tiny-engine-vite-plugin-meta-comments' @@ -17,7 +17,7 @@ import { copyBundleDeps, copyPreviewImportMap, copyLocalImportMap -} from './scripts/localCdnFile/index.js' +} from './localCdnFile/index.js' const monacoEditorPlugin = monacoEditorPluginCjs.default const nodeGlobalsPolyfillPlugin = nodeGlobalsPolyfillPluginCjs.default @@ -80,11 +80,6 @@ const config = { } }), vueJsx(), - createSvgIconsPlugin({ - iconDirs: [path.resolve(__dirname, './assets/')], - symbolId: 'icon-[name]', - inject: 'body-last' - }) ], optimizeDeps: { esbuildOptions: { @@ -147,7 +142,7 @@ const importMapVersions = { tinyVue: '~3.14' } -export default defineConfig(({ command = 'serve', mode = 'serve' }) => { +export default defineConfig(({ command = 'serve', mode = 'serve' }, extOptions) => { const { VITE_CDN_DOMAIN = 'https://npm.onmicrosoft.cn', VITE_LOCAL_IMPORT_MAPS, @@ -231,6 +226,11 @@ export default defineConfig(({ command = 'serve', mode = 'serve' }) => { const importMapStyles = [`${VITE_CDN_DOMAIN}/@opentiny/vue-theme@${importMapVersions.tinyVue}/index.css`] config.plugins.push( + createSvgIconsPlugin({ + iconDirs: extOptions.iconDirs || [], + symbolId: 'icon-[name]', + inject: 'body-last' + }), monacoEditorPluginInstance, htmlPlugin(mode), isLocalImportMap diff --git a/packages/design-core/scripts/externalDeps.js b/packages/build/vite-config/src/externalDeps.js similarity index 100% rename from packages/design-core/scripts/externalDeps.js rename to packages/build/vite-config/src/externalDeps.js diff --git a/packages/design-core/scripts/localCdnFile/copyBundleDeps.js b/packages/build/vite-config/src/localCdnFile/copyBundleDeps.js similarity index 100% rename from packages/design-core/scripts/localCdnFile/copyBundleDeps.js rename to packages/build/vite-config/src/localCdnFile/copyBundleDeps.js diff --git a/packages/design-core/scripts/localCdnFile/copyImportMap.js b/packages/build/vite-config/src/localCdnFile/copyImportMap.js similarity index 100% rename from packages/design-core/scripts/localCdnFile/copyImportMap.js rename to packages/build/vite-config/src/localCdnFile/copyImportMap.js diff --git a/packages/design-core/scripts/localCdnFile/copyPreviewImportMap.js b/packages/build/vite-config/src/localCdnFile/copyPreviewImportMap.js similarity index 100% rename from packages/design-core/scripts/localCdnFile/copyPreviewImportMap.js rename to packages/build/vite-config/src/localCdnFile/copyPreviewImportMap.js diff --git a/packages/design-core/scripts/localCdnFile/index.js b/packages/build/vite-config/src/localCdnFile/index.js similarity index 100% rename from packages/design-core/scripts/localCdnFile/index.js rename to packages/build/vite-config/src/localCdnFile/index.js diff --git a/packages/design-core/scripts/localCdnFile/locateCdnNpmInfo.js b/packages/build/vite-config/src/localCdnFile/locateCdnNpmInfo.js similarity index 100% rename from packages/design-core/scripts/localCdnFile/locateCdnNpmInfo.js rename to packages/build/vite-config/src/localCdnFile/locateCdnNpmInfo.js diff --git a/packages/design-core/scripts/localCdnFile/replaceImportPath.mjs b/packages/build/vite-config/src/localCdnFile/replaceImportPath.mjs similarity index 100% rename from packages/design-core/scripts/localCdnFile/replaceImportPath.mjs rename to packages/build/vite-config/src/localCdnFile/replaceImportPath.mjs diff --git a/packages/design-core/scripts/localCdnFile/utils.js b/packages/build/vite-config/src/localCdnFile/utils.js similarity index 100% rename from packages/design-core/scripts/localCdnFile/utils.js rename to packages/build/vite-config/src/localCdnFile/utils.js diff --git a/packages/design-core/scripts/vite-plugins/configureServerAddProxy.js b/packages/build/vite-config/src/vite-plugins/configureServerAddProxy.js similarity index 100% rename from packages/design-core/scripts/vite-plugins/configureServerAddProxy.js rename to packages/build/vite-config/src/vite-plugins/configureServerAddProxy.js diff --git a/packages/design-core/scripts/vite-plugins/installPackageTemporary.js b/packages/build/vite-config/src/vite-plugins/installPackageTemporary.js similarity index 100% rename from packages/design-core/scripts/vite-plugins/installPackageTemporary.js rename to packages/build/vite-config/src/vite-plugins/installPackageTemporary.js diff --git a/packages/build/vite-config/vite.config.js b/packages/build/vite-config/vite.config.js new file mode 100644 index 0000000000..11691a3fc9 --- /dev/null +++ b/packages/build/vite-config/vite.config.js @@ -0,0 +1,32 @@ +/** + * Copyright (c) 2023 - present TinyEngine Authors. + * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. + * + * Use of this source code is governed by an MIT-style license. + * + * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * + */ + +import { defineConfig } from 'vite' +import path from 'path' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [], + publicDir: false, + resolve: {}, + build: { + lib: { + entry: path.resolve(__dirname, './index.js'), + name: 'vite-config', + fileName: 'index', + formats: ['es', 'cjs'] + }, + rollupOptions: { + external: ['node:fs', 'node:path', 'vue', /@babel\/.*/, /@opentiny\/tiny-engine.*/, /@opentiny\/vue.*/] + } + } +}) diff --git a/packages/design-core/package.json b/packages/design-core/package.json index b71e7f5d3f..566a35fad1 100644 --- a/packages/design-core/package.json +++ b/packages/design-core/package.json @@ -14,12 +14,13 @@ ], "module": "index.js", "main": "index.js", + "files": [ + "dist", + "assets" + ], "exports": { ".": "index.js", - "./canvas": "./canvas.js", - "./vite.config.js": "./vite.config.js", - "./config/lowcode.config": "./config/lowcode.config.js", - "./scripts/externalDeps": "./scripts/externalDeps.js" + "./canvas": "./canvas.js" }, "scripts": { "dev": "cross-env NODE_OPTIONS=--max-old-space-size=10240 VITE_API_MOCK=mock vite", diff --git a/packages/design-core/src/init.js b/packages/design-core/src/init.js index d7ca59ea22..1d60271525 100644 --- a/packages/design-core/src/init.js +++ b/packages/design-core/src/init.js @@ -23,8 +23,6 @@ import App from './App.vue' import defaultRegistry from '../registry.js' import { registerConfigurators } from './registerConfigurators' -import 'virtual:svg-icons-register' - const defaultLifeCycles = { beforeAppCreate: ({ registry }) => { // 合并用户自定义注册表 From c9c083951f3914f4c3a4505666f0f387b44a710e Mon Sep 17 00:00:00 2001 From: chilingling <26962197+chilingling@users.noreply.github.com> Date: Fri, 7 Jun 2024 18:58:26 -0700 Subject: [PATCH 04/13] fix(preview): fix designer-demo can't preview (#554) --- .../design-core => designer-demo}/.env.alpha | 0 .../.env.development | 0 .../design-core => designer-demo}/.env.prod | 0 .../design-core => designer-demo}/preview.html | 2 +- designer-demo/src/preview.js | 15 +++++++++++++++ packages/design-core/index.js | 1 + .../design-core/src/preview/src/Toolbar.vue | 17 ++++++++++++++--- packages/design-core/src/preview/src/main.js | 12 +++++++----- 8 files changed, 38 insertions(+), 9 deletions(-) rename {packages/design-core => designer-demo}/.env.alpha (100%) rename {packages/design-core => designer-demo}/.env.development (100%) rename {packages/design-core => designer-demo}/.env.prod (100%) rename {packages/design-core => designer-demo}/preview.html (81%) create mode 100644 designer-demo/src/preview.js diff --git a/packages/design-core/.env.alpha b/designer-demo/.env.alpha similarity index 100% rename from packages/design-core/.env.alpha rename to designer-demo/.env.alpha diff --git a/packages/design-core/.env.development b/designer-demo/.env.development similarity index 100% rename from packages/design-core/.env.development rename to designer-demo/.env.development diff --git a/packages/design-core/.env.prod b/designer-demo/.env.prod similarity index 100% rename from packages/design-core/.env.prod rename to designer-demo/.env.prod diff --git a/packages/design-core/preview.html b/designer-demo/preview.html similarity index 81% rename from packages/design-core/preview.html rename to designer-demo/preview.html index fb55265342..23770ebf6d 100644 --- a/packages/design-core/preview.html +++ b/designer-demo/preview.html @@ -8,6 +8,6 @@
- + diff --git a/designer-demo/src/preview.js b/designer-demo/src/preview.js new file mode 100644 index 0000000000..b7f5b6f38d --- /dev/null +++ b/designer-demo/src/preview.js @@ -0,0 +1,15 @@ +/** + * Copyright (c) 2023 - present TinyEngine Authors. + * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. + * + * Use of this source code is governed by an MIT-style license. + * + * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * + */ + +import { initPreview } from '@opentiny/tiny-engine' + +initPreview() diff --git a/packages/design-core/index.js b/packages/design-core/index.js index 4a662159df..2e6ae6b8a3 100644 --- a/packages/design-core/index.js +++ b/packages/design-core/index.js @@ -30,3 +30,4 @@ export { default as Robot } from '@opentiny/tiny-engine-plugin-robot' export { default as Props } from '@opentiny/tiny-engine-setting-props' 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' diff --git a/packages/design-core/src/preview/src/Toolbar.vue b/packages/design-core/src/preview/src/Toolbar.vue index 790c80fbc9..988827b6d7 100644 --- a/packages/design-core/src/preview/src/Toolbar.vue +++ b/packages/design-core/src/preview/src/Toolbar.vue @@ -21,9 +21,13 @@ import { Switch as TinySwitch } from '@opentiny/vue' import { getSearchParams } from './preview/http' import { BROADCAST_CHANNEL } from '../src/preview/srcFiles/constant' import { injectDebugSwitch } from './preview/debugSwitch' +import BreadcrumbPlugin from '@opentiny/tiny-engine-toolbar-breadcrumb' +import LangPlugin from '@opentiny/tiny-engine-toolbar-lang' +import MediaPlugin from '@opentiny/tiny-engine-toolbar-media' const getToolbars = (pluginId) => { return defineAsyncComponent(() => + // FIXME: preview 这里其实有单独的入口,拿到的注册表是空的 Promise.resolve(getMergeRegistry('toolbars')?.find((t) => t.id === pluginId)?.component || ) ) } @@ -35,7 +39,11 @@ export default { setup() { const debugSwitch = injectDebugSwitch() const tools = ['breadcrumb', 'lang', 'media'] - const [Breadcrumb, ChangeLang, ToolbarMedia] = tools.map(getToolbars) + const [Breadcrumb, ChangeLang, ToolbarMedia] = [ + BreadcrumbPlugin.component, + LangPlugin.component, + MediaPlugin.component + ] const { setBreadcrumbPage } = useBreadcrumb() const { pageInfo } = getSearchParams() @@ -44,8 +52,11 @@ export default { const setViewPort = (item) => { const iframe = document.getElementsByClassName('iframe-container')[0] const app = document.getElementById('app') - iframe.style.width = item - iframe.style.margin = 'auto' + + if (iframe) { + iframe.style.width = item + iframe.style.margin = 'auto' + } app.style.overflow = 'hidden' } diff --git a/packages/design-core/src/preview/src/main.js b/packages/design-core/src/preview/src/main.js index df3de70ec4..18ca113a61 100644 --- a/packages/design-core/src/preview/src/main.js +++ b/packages/design-core/src/preview/src/main.js @@ -15,8 +15,10 @@ import initSvgs from '@opentiny/tiny-engine-svgs' import App from './App.vue' import 'virtual:svg-icons-register' -const app = createApp(App) - -initSvgs(app) - -app.mount('#app') +export const initPreview = () => { + const app = createApp(App) + + initSvgs(app) + + app.mount('#app') +} From 97041d29373ca6799bf562d94b798ac13952e72b Mon Sep 17 00:00:00 2001 From: Hexqi Date: Sat, 8 Jun 2024 10:50:17 +0800 Subject: [PATCH 05/13] feat: remove useless (#559) --- packages/design-core/canvas.html | 265 ------------------ packages/design-core/index.html | 131 --------- packages/design-core/index.js | 1 + packages/design-core/package.json | 26 +- packages/design-core/src/canvas.js | 3 - .../design-core/{ => src/canvas}/canvas.js | 0 packages/design-core/src/init.js | 2 +- packages/design-core/src/{ => layout}/App.vue | 0 .../src/{ => layout}/DesignCanvas.vue | 0 .../src/{ => layout}/DesignPlugins.vue | 2 +- .../src/{ => layout}/DesignSettings.vue | 0 .../src/{ => layout}/DesignToolbars.vue | 0 packages/toolbars/logo/package.json | 1 + 13 files changed, 6 insertions(+), 425 deletions(-) delete mode 100644 packages/design-core/canvas.html delete mode 100644 packages/design-core/index.html delete mode 100644 packages/design-core/src/canvas.js rename packages/design-core/{ => src/canvas}/canvas.js (100%) rename packages/design-core/src/{ => layout}/App.vue (100%) rename packages/design-core/src/{ => layout}/DesignCanvas.vue (100%) rename packages/design-core/src/{ => layout}/DesignPlugins.vue (99%) rename packages/design-core/src/{ => layout}/DesignSettings.vue (100%) rename packages/design-core/src/{ => layout}/DesignToolbars.vue (100%) diff --git a/packages/design-core/canvas.html b/packages/design-core/canvas.html deleted file mode 100644 index b0095770e1..0000000000 --- a/packages/design-core/canvas.html +++ /dev/null @@ -1,265 +0,0 @@ - - - - - - - - - -
-
-
-
-
-
-
- - - diff --git a/packages/design-core/index.html b/packages/design-core/index.html deleted file mode 100644 index f4e14a6d27..0000000000 --- a/packages/design-core/index.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - TinyEditor 前端可视化设计器 - - - -
-
-
-

Loading

- - - - - - - -
-
-
- - - diff --git a/packages/design-core/index.js b/packages/design-core/index.js index 2e6ae6b8a3..8b7e1fa1ae 100644 --- a/packages/design-core/index.js +++ b/packages/design-core/index.js @@ -30,4 +30,5 @@ export { default as Robot } from '@opentiny/tiny-engine-plugin-robot' export { default as Props } from '@opentiny/tiny-engine-setting-props' 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' diff --git a/packages/design-core/package.json b/packages/design-core/package.json index 566a35fad1..fd9447e02b 100644 --- a/packages/design-core/package.json +++ b/packages/design-core/package.json @@ -20,13 +20,9 @@ ], "exports": { ".": "index.js", - "./canvas": "./canvas.js" + "./canvas": "./src/canvas/canvas.js" }, "scripts": { - "dev": "cross-env NODE_OPTIONS=--max-old-space-size=10240 VITE_API_MOCK=mock vite", - "serve": "cross-env NODE_OPTIONS=--max-old-space-size=10240 vite", - "build:alpha": "cross-env NODE_OPTIONS=--max-old-space-size=8192 vite build --mode alpha", - "build:prod": "cross-env NODE_OPTIONS=--max-old-space-size=8192 vite build --mode prod", "preview": "vite preview", "lint": "eslint . --ext .js,.vue,.jsx --fix" }, @@ -112,35 +108,17 @@ "vue-i18n": "^9.9.0" }, "devDependencies": { - "@babel/eslint-parser": "^7.21.3", - "@esbuild-plugins/node-globals-polyfill": "^0.2.3", - "@esbuild-plugins/node-modules-polyfill": "^0.2.2", "@types/node": "^18.0.0", "@vitejs/plugin-vue": "^4.2.3", "@vitejs/plugin-vue-jsx": "^3.1.0", - "assert": "^2.0.0", - "buffer": "^6.0.3", "cross-env": "^7.0.3", - "esbuild-plugin-copy": "^2.1.1", "eslint": "^8.38.0", "eslint-plugin-vue": "^8.0.0", "fs-extra": "^10.1.0", "husky": "^8.0.0", "lerna": "^7.2.0", "less": "^4.1.2", - "lint-staged": "^13.2.0", - "path": "^0.12.7", - "rimraf": "^3.0.2", - "rollup-plugin-polyfill-node": "^0.12.0", - "rollup-plugin-terser": "^7.0.2", - "rollup-plugin-visualizer": "^5.8.3", - "shelljs": "^0.8.5", - "svg-sprite-loader": "^6.0.11", - "vite": "^4.3.7", - "vite-plugin-monaco-editor": "^1.1.0", - "vite-plugin-static-copy": "^0.16.0", - "vite-plugin-svg-icons": "^2.0.1", - "vue-eslint-parser": "^8.0.1" + "lint-staged": "^13.2.0" }, "browserslist": [ "> 1%", diff --git a/packages/design-core/src/canvas.js b/packages/design-core/src/canvas.js deleted file mode 100644 index 118254a0d3..0000000000 --- a/packages/design-core/src/canvas.js +++ /dev/null @@ -1,3 +0,0 @@ -import { createRender } from '@opentiny/tiny-engine-canvas' - -createRender(window.parent.TinyGlobalConfig) diff --git a/packages/design-core/canvas.js b/packages/design-core/src/canvas/canvas.js similarity index 100% rename from packages/design-core/canvas.js rename to packages/design-core/src/canvas/canvas.js diff --git a/packages/design-core/src/init.js b/packages/design-core/src/init.js index 1d60271525..59a5316a51 100644 --- a/packages/design-core/src/init.js +++ b/packages/design-core/src/init.js @@ -19,7 +19,7 @@ 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 App from './App.vue' +import App from './layout/App.vue' import defaultRegistry from '../registry.js' import { registerConfigurators } from './registerConfigurators' diff --git a/packages/design-core/src/App.vue b/packages/design-core/src/layout/App.vue similarity index 100% rename from packages/design-core/src/App.vue rename to packages/design-core/src/layout/App.vue diff --git a/packages/design-core/src/DesignCanvas.vue b/packages/design-core/src/layout/DesignCanvas.vue similarity index 100% rename from packages/design-core/src/DesignCanvas.vue rename to packages/design-core/src/layout/DesignCanvas.vue diff --git a/packages/design-core/src/DesignPlugins.vue b/packages/design-core/src/layout/DesignPlugins.vue similarity index 99% rename from packages/design-core/src/DesignPlugins.vue rename to packages/design-core/src/layout/DesignPlugins.vue index 744bfaa91f..8cb47dd87d 100644 --- a/packages/design-core/src/DesignPlugins.vue +++ b/packages/design-core/src/layout/DesignPlugins.vue @@ -58,7 +58,7 @@ >
- +
diff --git a/packages/design-core/src/DesignSettings.vue b/packages/design-core/src/layout/DesignSettings.vue similarity index 100% rename from packages/design-core/src/DesignSettings.vue rename to packages/design-core/src/layout/DesignSettings.vue diff --git a/packages/design-core/src/DesignToolbars.vue b/packages/design-core/src/layout/DesignToolbars.vue similarity index 100% rename from packages/design-core/src/DesignToolbars.vue rename to packages/design-core/src/layout/DesignToolbars.vue diff --git a/packages/toolbars/logo/package.json b/packages/toolbars/logo/package.json index 4adf6d8eb3..6a4a4b39b0 100644 --- a/packages/toolbars/logo/package.json +++ b/packages/toolbars/logo/package.json @@ -37,6 +37,7 @@ }, "peerDependencies": { "@opentiny/vue": "^3.14.0", + "@opentiny/vue-icon": "^3.14.0", "vue": "^3.4.15" } } From e4291d5452e6e3346fa93035bfd1cf8bc8dd1847 Mon Sep 17 00:00:00 2001 From: chilingling <26962197+chilingling@users.noreply.github.com> Date: Fri, 7 Jun 2024 20:23:48 -0700 Subject: [PATCH 06/13] fix: fix relative path (#560) * fix: fix relative path * fix: read envconfig from extOptions --- designer-demo/{.env.prod => .env.production} | 0 designer-demo/vite.config.js | 3 +- .../build/vite-config/src/default-config.js | 30 ++++++++----------- 3 files changed, 14 insertions(+), 19 deletions(-) rename designer-demo/{.env.prod => .env.production} (100%) diff --git a/designer-demo/.env.prod b/designer-demo/.env.production similarity index 100% rename from designer-demo/.env.prod rename to designer-demo/.env.production diff --git a/designer-demo/vite.config.js b/designer-demo/vite.config.js index 81ff3bf2a4..ebdd4e92c6 100644 --- a/designer-demo/vite.config.js +++ b/designer-demo/vite.config.js @@ -1,9 +1,10 @@ import path from 'node:path' -import { defineConfig, mergeConfig } from 'vite' +import { defineConfig, mergeConfig, loadEnv } from 'vite' import { getDefaultConfig } from '@opentiny/tiny-engine-vite-config' export default defineConfig((options) => { const extOptions = { + ...loadEnv(options.mode, process.cwd(), ''), iconDirs: [path.resolve(__dirname, './node_modules/@opentiny/tiny-engine/assets/')] } const defaultConfig = getDefaultConfig(options, extOptions) diff --git a/packages/build/vite-config/src/default-config.js b/packages/build/vite-config/src/default-config.js index ebd6c63236..eb27c9b539 100644 --- a/packages/build/vite-config/src/default-config.js +++ b/packages/build/vite-config/src/default-config.js @@ -1,4 +1,4 @@ -import { defineConfig, loadEnv } from 'vite' +import { defineConfig } from 'vite' import path from 'path' import vue from '@vitejs/plugin-vue' import monacoEditorPluginCjs from 'vite-plugin-monaco-editor' @@ -12,12 +12,7 @@ import { importmapPlugin } from './externalDeps.js' import visualizerCjs from 'rollup-plugin-visualizer' import { fileURLToPath } from 'node:url' import generateComment from '@opentiny/tiny-engine-vite-plugin-meta-comments' -import { - getBaseUrlFromCli, - copyBundleDeps, - copyPreviewImportMap, - copyLocalImportMap -} from './localCdnFile/index.js' +import { getBaseUrlFromCli, copyBundleDeps, copyPreviewImportMap, copyLocalImportMap } from './localCdnFile/index.js' const monacoEditorPlugin = monacoEditorPluginCjs.default const nodeGlobalsPolyfillPlugin = nodeGlobalsPolyfillPluginCjs.default @@ -79,7 +74,7 @@ const config = { } } }), - vueJsx(), + vueJsx() ], optimizeDeps: { esbuildOptions: { @@ -93,7 +88,10 @@ const config = { //@vue/repl monaco编辑器需要 resolveFrom: 'cwd', assets: { - from: ['./node_modules/@vue/repl/dist/assets/*'], // worker.js文件以url形式引用不会被esbuild拉起,需要手动复制 + from: [ + './node_modules/@vue/repl/dist/assets/*', + './node_modules/@opentiny/tiny-engine/node_modules/@vue/repl/dist/assets/*' + ], // worker.js文件以url形式引用不会被esbuild拉起,需要手动复制 to: ['./node_modules/.vite/assets'] // 开发态,js文件被缓存在.vite/deps,请求相对路径为.vite/assets }, watch: true @@ -112,10 +110,9 @@ const config = { rollupOptions: { plugins: [nodePolyfill({ include: null })], // 使用@rollup/plugin-inject的默认值{include: null}, 即在所有代码中生效 input: { - index: path.resolve(__dirname, './index.html'), - canvas: path.resolve(__dirname, './canvas.html'), - preview: path.resolve(__dirname, './preview.html'), - previewApp: path.resolve(__dirname, './previewApp.html') + index: path.resolve(process.cwd(), './index.html'), + canvas: path.resolve(process.cwd(), './canvas.html'), + preview: path.resolve(process.cwd(), './preview.html') }, output: { manualChunks: (id) => { @@ -143,11 +140,8 @@ const importMapVersions = { } export default defineConfig(({ command = 'serve', mode = 'serve' }, extOptions) => { - const { - VITE_CDN_DOMAIN = 'https://npm.onmicrosoft.cn', - VITE_LOCAL_IMPORT_MAPS, - VITE_LOCAL_BUNDLE_DEPS - } = loadEnv(mode, process.cwd(), '') + const { VITE_CDN_DOMAIN = 'https://npm.onmicrosoft.cn', VITE_LOCAL_IMPORT_MAPS, VITE_LOCAL_BUNDLE_DEPS } = extOptions + const isLocalImportMap = VITE_LOCAL_IMPORT_MAPS === 'true' // true公共依赖库使用本地打包文件,false公共依赖库使用公共CDN const isCopyBundleDeps = VITE_LOCAL_BUNDLE_DEPS === 'true' // true bundle里的cdn依赖处理成本地依赖, false 不处理 From c1ce492a0164ffe3e7bfd9b24aaa5c2884243a35 Mon Sep 17 00:00:00 2001 From: chilingling <26962197+chilingling@users.noreply.github.com> Date: Fri, 7 Jun 2024 23:26:49 -0700 Subject: [PATCH 07/13] feat: remove plugin from default registry (#562) * feat: remove plugin from default registry * fix: merge registry inside init function * fix: use merged registry to get theme --- designer-demo/registry.js | 152 ++++++++----------- designer-demo/src/preview.js | 2 +- packages/design-core/index.js | 2 + packages/design-core/registry.js | 54 +------ packages/design-core/src/preview/src/App.vue | 5 - packages/design-core/src/preview/src/main.js | 13 +- 6 files changed, 77 insertions(+), 151 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/preview.js b/designer-demo/src/preview.js index b7f5b6f38d..d47a8bdb6a 100644 --- a/designer-demo/src/preview.js +++ b/designer-demo/src/preview.js @@ -12,4 +12,4 @@ import { initPreview } from '@opentiny/tiny-engine' -initPreview() +initPreview({ registry: { config: { id : 'engine.config', theme: 'light' } } }) 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/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 @@ + diff --git a/designer-demo/package.json b/designer-demo/package.json index 3e50bba3e8..a00abe4d83 100644 --- a/designer-demo/package.json +++ b/designer-demo/package.json @@ -12,6 +12,8 @@ "@opentiny/tiny-engine": "workspace:^", "@opentiny/tiny-engine-entry": "workspace:^", "@opentiny/tiny-engine-configurator": "workspace:*", + "@opentiny/tiny-engine-theme-dark": "workspace:*", + "@opentiny/tiny-engine-theme-light": "workspace:*", "@opentiny/vue": "~3.14.0", "@opentiny/vue-design-smb": "~3.14.0", "@opentiny/vue-renderless": "~3.14.0", diff --git a/designer-demo/vite.config.js b/designer-demo/vite.config.js index 0bed17012b..62a9038fb1 100644 --- a/designer-demo/vite.config.js +++ b/designer-demo/vite.config.js @@ -6,7 +6,7 @@ export default defineConfig((options) => { const envDir = path.resolve(process.cwd(), 'env') const extOptions = { ...loadEnv(options.mode, envDir, 'VITE_'), - iconDirs: [path.resolve(__dirname, './node_modules/@opentiny/tiny-engine/assets/')] + iconDirs: [path.resolve(__dirname, './node_modules/@opentiny/tiny-engine/dist/assets/')] } const defaultConfig = getDefaultConfig(options, extOptions) @@ -64,7 +64,7 @@ export default defineConfig((options) => { '@opentiny/tiny-engine-configurator': path.resolve(__dirname, '../packages/configurator/src/index.js'), '@opentiny/tiny-engine-theme': ['light', 'dark'].includes(extOptions.VITE_THEME) ? path.resolve(process.cwd(), `../packages/theme/${extOptions.VITE_THEME}/index.less`) - // ? path.resolve(process.cwd(), `./node_modules/@opentiny/tiny-engine/node_modules/@opentiny/tiny-engine-theme-${extOptions.VITE_THEME}/dist/style.css`) + // ? path.resolve(process.cwd(), `./node_modules/@opentiny/tiny-engine-theme-${extOptions.VITE_THEME}/dist/style.css`) : '' } diff --git a/packages/build/vite-config/package.json b/packages/build/vite-config/package.json index 057aba73d2..1d0e88f0b5 100644 --- a/packages/build/vite-config/package.json +++ b/packages/build/vite-config/package.json @@ -9,7 +9,7 @@ "dist" ], "scripts": { - "build": "vite build" + "build": "" }, "dependencies": { "@babel/core": "~7.23.2", diff --git a/packages/design-core/package.json b/packages/design-core/package.json index fd9447e02b..9d46613d01 100644 --- a/packages/design-core/package.json +++ b/packages/design-core/package.json @@ -19,12 +19,13 @@ "assets" ], "exports": { - ".": "index.js", - "./canvas": "./src/canvas/canvas.js" + ".": "./dist/index.js", + "./canvas": "./dist/canvas.js" }, "scripts": { "preview": "vite preview", - "lint": "eslint . --ext .js,.vue,.jsx --fix" + "lint": "eslint . --ext .js,.vue,.jsx --fix", + "build": "cross-env NODE_OPTIONS=--max-old-space-size=8192 vite build" }, "repository": { "type": "git", @@ -108,6 +109,8 @@ "vue-i18n": "^9.9.0" }, "devDependencies": { + "@esbuild-plugins/node-globals-polyfill": "^0.2.3", + "@esbuild-plugins/node-modules-polyfill": "^0.2.2", "@types/node": "^18.0.0", "@vitejs/plugin-vue": "^4.2.3", "@vitejs/plugin-vue-jsx": "^3.1.0", diff --git a/packages/design-core/src/preview/src/main.js b/packages/design-core/src/preview/src/main.js index cf5278f519..41bda9dd75 100644 --- a/packages/design-core/src/preview/src/main.js +++ b/packages/design-core/src/preview/src/main.js @@ -15,13 +15,13 @@ import initSvgs from '@opentiny/tiny-engine-svgs' import { defineEntry, mergeRegistry } from '@opentiny/tiny-engine-entry' import defaultRegistry from '../../../registry.js' import App from './App.vue' -import 'virtual:svg-icons-register' export const initPreview = ({ registry }) => { const mergedRegistry = mergeRegistry(registry, defaultRegistry) defineEntry(mergedRegistry) - import(`../../theme/${mergedRegistry.config.theme || 'light'}.js`) + // TODO: 后续需要方案 + // import(`../../theme/${mergedRegistry.config.theme || 'light'}.js`) const app = createApp(App) diff --git a/packages/design-core/vite.config.js b/packages/design-core/vite.config.js new file mode 100644 index 0000000000..b410bd55e4 --- /dev/null +++ b/packages/design-core/vite.config.js @@ -0,0 +1,58 @@ +import { defineConfig } from 'vite' +import path from 'path' +import vue from '@vitejs/plugin-vue' +import vueJsx from '@vitejs/plugin-vue-jsx' +import nodeGlobalsPolyfillPluginCjs from '@esbuild-plugins/node-globals-polyfill' +import nodeModulesPolyfillPluginCjs from '@esbuild-plugins/node-modules-polyfill' +import nodePolyfill from 'rollup-plugin-polyfill-node' +import { fileURLToPath } from 'node:url' + +const nodeGlobalsPolyfillPlugin = nodeGlobalsPolyfillPluginCjs.default +const nodeModulesPolyfillPlugin = nodeModulesPolyfillPluginCjs.default + +const __filename = fileURLToPath(import.meta.url) +const __dirname = path.dirname(__filename) + +export default defineConfig({ + plugins: [vue(), vueJsx()], + publicDir: false, + optimizeDeps: { + esbuildOptions: { + plugins: [ + nodeGlobalsPolyfillPlugin({ + process: true, + buffer: true + }), + nodeModulesPolyfillPlugin() + ] + } + }, + build: { + commonjsOptions: { + transformMixedEsModules: true, + exclude: ['node_modules/*monaco-editor*/**', 'node_modules/lodash-es/**', 'node_modules/@types/lodash-es/**'] + }, + minify: true, + sourcemap: true, + lib: { + entry: { + index: path.resolve(__dirname, 'index.js'), + canvas: path.resolve(__dirname, './src/canvas/canvas.js') + }, + name: 'tiny-engine', + fileName: (_, entryName) => `${entryName}.js`, + formats: ['es'] + }, + rollupOptions: { + plugins: [nodePolyfill({ include: null })], + output: { + banner: (chunk) => { + if (chunk.name === 'index') { + return 'import "./style.css"' + } + } + }, + external: ['vue', 'monaco-editor', 'prettier', /@opentiny\/vue.*/] + } + } +}) From e15e6c46626788a08a919a0103dca81acb87676b Mon Sep 17 00:00:00 2001 From: Hexqi Date: Tue, 11 Jun 2024 11:37:57 +0800 Subject: [PATCH 13/13] fix: tiny-engine alias (#567) --- designer-demo/vite.config.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/designer-demo/vite.config.js b/designer-demo/vite.config.js index 62a9038fb1..cf8447e49e 100644 --- a/designer-demo/vite.config.js +++ b/designer-demo/vite.config.js @@ -6,11 +6,13 @@ export default defineConfig((options) => { const envDir = path.resolve(process.cwd(), 'env') const extOptions = { ...loadEnv(options.mode, envDir, 'VITE_'), - iconDirs: [path.resolve(__dirname, './node_modules/@opentiny/tiny-engine/dist/assets/')] + iconDirs: [path.resolve(__dirname, './node_modules/@opentiny/tiny-engine/assets/')] } const defaultConfig = getDefaultConfig(options, extOptions) const devAlias = { + '@opentiny/tiny-engine/canvas': path.resolve(__dirname, '../packages/design-core/src/canvas/canvas.js'), + '@opentiny/tiny-engine': path.resolve(__dirname, '../packages/design-core/index.js'), '@opentiny/tiny-engine-controller/js': path.resolve(__dirname, '../packages/controller/js'), '@opentiny/tiny-engine-common/component': path.resolve(__dirname, '../packages/common/component'), '@opentiny/tiny-engine-common': path.resolve(__dirname, '../packages/common/index.js'),