From e22e7e7746c51aac9d3e321df04e0239e229bf59 Mon Sep 17 00:00:00 2001 From: lichunn <46984087+lichunn@users.noreply.github.com> Date: Sat, 25 May 2024 02:15:12 -0700 Subject: [PATCH] feat: add meta data for http/theme/svg plugin (#509) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add meta for tool * feat:add generateComment plugin for tool * feat: add layout * fix: 更改写错的layout * fix: 修改layout格式 --- packages/design-core/package.json | 2 + packages/design-core/registry.js | 2 + packages/design-core/vite.config.js | 3 +- packages/http/index.js | 5 ++ packages/http/meta.js | 4 ++ packages/http/package.json | 2 + packages/http/vite.config.js | 3 +- packages/layout/index.js | 7 ++ packages/layout/meta.js | 4 ++ packages/layout/package.json | 23 +++++++ packages/layout/src/index.less | 95 ++++++++++++++++++++++++++ packages/layout/src/index.vue | 93 +++++++++++++++++++++++++ packages/layout/vite.config.js | 32 +++++++++ packages/svgs/index.js | 3 +- packages/svgs/meta.js | 4 ++ packages/svgs/package.json | 5 +- packages/svgs/vite.config.js | 3 +- packages/theme/dark/index.js | 5 ++ packages/theme/dark/meta.js | 5 ++ packages/theme/dark/package.json | 4 ++ packages/theme/dark/vite.config.js | 22 +++--- packages/theme/light/index.js | 5 ++ packages/theme/light/meta.js | 5 ++ packages/theme/light/package.json | 4 ++ packages/theme/light/vite.config.js | 22 +++--- packages/utils/index.js | 5 ++ packages/utils/meta.js | 4 ++ packages/utils/package.json | 5 +- packages/utils/vite.config.js | 3 +- packages/vue-generator/index.js | 5 ++ packages/vue-generator/meta.js | 4 ++ packages/vue-generator/package.json | 2 + packages/vue-generator/vite.config.mjs | 2 + 33 files changed, 365 insertions(+), 27 deletions(-) create mode 100644 packages/http/index.js create mode 100644 packages/http/meta.js create mode 100644 packages/layout/index.js create mode 100644 packages/layout/meta.js create mode 100644 packages/layout/package.json create mode 100644 packages/layout/src/index.less create mode 100644 packages/layout/src/index.vue create mode 100644 packages/layout/vite.config.js create mode 100644 packages/svgs/meta.js create mode 100644 packages/theme/dark/index.js create mode 100644 packages/theme/dark/meta.js create mode 100644 packages/theme/light/index.js create mode 100644 packages/theme/light/meta.js create mode 100644 packages/utils/index.js create mode 100644 packages/utils/meta.js create mode 100644 packages/vue-generator/index.js create mode 100644 packages/vue-generator/meta.js diff --git a/packages/design-core/package.json b/packages/design-core/package.json index 5fa633044..d4983fc0e 100644 --- a/packages/design-core/package.json +++ b/packages/design-core/package.json @@ -43,6 +43,8 @@ "@babel/generator": "~7.23.2", "@babel/parser": "~7.23.2", "@babel/traverse": "~7.23.2", + "@opentiny/tiny-engine-layout": "workspace:~", + "@opentiny/vite-plugin-generate-comments": "workspace:*", "@opentiny/tiny-engine-entry": "workspace:*", "@opentiny/tiny-engine-canvas": "workspace:*", "@opentiny/tiny-engine-common": "workspace:*", diff --git a/packages/design-core/registry.js b/packages/design-core/registry.js index 219353eee..94427119b 100644 --- a/packages/design-core/registry.js +++ b/packages/design-core/registry.js @@ -11,7 +11,9 @@ */ import i18nMeta from '@opentiny/tiny-engine-plugin-i18n' +import layoutMeta from '@opentiny/tiny-engine-layout' export default { + layout: layoutMeta, plugins: [i18nMeta] } diff --git a/packages/design-core/vite.config.js b/packages/design-core/vite.config.js index e2dc194f4..9fce95a7b 100644 --- a/packages/design-core/vite.config.js +++ b/packages/design-core/vite.config.js @@ -196,7 +196,8 @@ const devAlias = { '@opentiny/tiny-engine-webcomponent-core': path.resolve(__dirname, '../webcomponent/src/lib.js'), '@opentiny/tiny-engine-i18n-host': path.resolve(__dirname, '../i18n/src/lib.js'), '@opentiny/tiny-engine-builtin-component': path.resolve(__dirname, '../builtinComponent/index.js'), - '@opentiny/tiny-engine-entry': path.resolve(__dirname, '../entry/index.js') + '@opentiny/tiny-engine-entry': path.resolve(__dirname, '../entry/index.js'), + '@opentiny/tiny-engine-layout': path.resolve(__dirname, '../layout/index.js') } const prodAlias = { diff --git a/packages/http/index.js b/packages/http/index.js new file mode 100644 index 000000000..dcf78045f --- /dev/null +++ b/packages/http/index.js @@ -0,0 +1,5 @@ +import metaData from './meta' + +export default { + ...metaData +} diff --git a/packages/http/meta.js b/packages/http/meta.js new file mode 100644 index 000000000..29ac96550 --- /dev/null +++ b/packages/http/meta.js @@ -0,0 +1,4 @@ +export default { + id: 'engine.http', + type: 'http' +} diff --git a/packages/http/package.json b/packages/http/package.json index d29ed81ca..3fcefb6d4 100644 --- a/packages/http/package.json +++ b/packages/http/package.json @@ -25,11 +25,13 @@ "homepage": "https://opentiny.design/tiny-engine", "dependencies": { "@opentiny/tiny-engine-utils": "workspace:*", + "@opentiny/tiny-engine-entry": "workspace:*", "@vueuse/core": "^9.6.0", "axios": "~0.28.0", "axios-mock-adapter": "^1.21.5" }, "devDependencies": { + "@opentiny/vite-plugin-generate-comments": "workspace:*", "@vitejs/plugin-vue": "^4.2.3", "@vitejs/plugin-vue-jsx": "^3.1.0", "vite": "^4.3.7" diff --git a/packages/http/vite.config.js b/packages/http/vite.config.js index 6b29354da..36771e67b 100644 --- a/packages/http/vite.config.js +++ b/packages/http/vite.config.js @@ -14,10 +14,11 @@ import { defineConfig } from 'vite' import path from 'path' import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' +import generateComment from '@opentiny/vite-plugin-generate-comments' // https://vitejs.dev/config/ export default defineConfig({ - plugins: [vue(), vueJsx()], + plugins: [generateComment(), vue(), vueJsx()], publicDir: false, resolve: {}, build: { diff --git a/packages/layout/index.js b/packages/layout/index.js new file mode 100644 index 000000000..1dd58d618 --- /dev/null +++ b/packages/layout/index.js @@ -0,0 +1,7 @@ +import component from './src/index.vue' +import metaData from './meta' + +export default { + ...metaData, + component +} diff --git a/packages/layout/meta.js b/packages/layout/meta.js new file mode 100644 index 000000000..a5860bcd0 --- /dev/null +++ b/packages/layout/meta.js @@ -0,0 +1,4 @@ +export default { + id: 'engine.layout', + type: 'layout' +} diff --git a/packages/layout/package.json b/packages/layout/package.json new file mode 100644 index 000000000..22d2f9894 --- /dev/null +++ b/packages/layout/package.json @@ -0,0 +1,23 @@ +{ + "name": "@opentiny/tiny-engine-layout", + "version": "1.0.0", + "scripts": { + "build": "vite build" + }, + "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", + "files": [ + "dist" + ], + "dependencies": { + "@opentiny/tiny-engine-entry": "workspace:*", + "vue": "3.2.45" + }, + "devDependencies": { + "@opentiny/vite-plugin-generate-comments": "workspace:*", + "@vitejs/plugin-vue": "^5.0.4", + "less": "^4.2.0", + "vite": "^5.1.6" + } +} diff --git a/packages/layout/src/index.less b/packages/layout/src/index.less new file mode 100644 index 000000000..1c3a67f0c --- /dev/null +++ b/packages/layout/src/index.less @@ -0,0 +1,95 @@ +.tiny-engine-layout { + height: 100vh; + display: flex; + flex-flow: column; +} +.tiny-engine-layout-header { + height: 48px; + border-bottom: 1px solid #dfe1e6; + text-align: center; + line-height: 48px; + background: #ecf8ff; + display: flex; + justify-content: center; + & > div { + margin: 0 10px; + } +} +.tiny-engine-layout-content { + display: flex; + max-width: 100vw; + flex: 1; + position: relative; + .main-content { + flex-grow: 1; + background: #fffdec; + } +} + +.left-panel { + width: 40px; + display: flex; + flex-direction: column; + justify-content: space-between; + background: #fff; + box-sizing: border-box; + z-index: 1000; + border-right: 1px solid #dfe1e6; +} +.tiny-engine-drawer { + position: absolute; + width: 500px; + height: 100%; + left: 40px; + border-right: 1px solid #dfe1e6; + background: #fff; + box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2); +} +.left-panel-top { + padding-top: 20px; + .panel-item { + text-align: center; + margin-top: 16px; + cursor: pointer; + .icon-container { + display: inline-flex; + padding: 6px; + border-radius: 6px; + &:hover { + background: #f2f2f2; + } + } + &.active { + .icon-container { + background: #f2f2f2; + } + svg { + fill: #1476ff; + } + } + } + svg { + font-size: 20px; + } +} +.main-content { + flex-grow: 1; + background: #fffdec; + font-size: 30px; + text-align: center; +} +.right-panel { + width: 272px; + height: 100%; + transition: 0.3s linear; + position: relative; + border-left: 1px solid #dfe1e6; + background: #fff; + text-align: center; + font-size: 20px; + padding-top: 10px; + box-sizing: border-box; +} +.toolbar-item { + cursor: pointer; +} diff --git a/packages/layout/src/index.vue b/packages/layout/src/index.vue new file mode 100644 index 000000000..0dafb1d8c --- /dev/null +++ b/packages/layout/src/index.vue @@ -0,0 +1,93 @@ + + + diff --git a/packages/layout/vite.config.js b/packages/layout/vite.config.js new file mode 100644 index 000000000..a9508627a --- /dev/null +++ b/packages/layout/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' +import vue from '@vitejs/plugin-vue' +import vueJsx from '@vitejs/plugin-vue-jsx' +import generateComment from '@opentiny/vite-plugin-generate-comments' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [generateComment(), vue(), vueJsx()], + publicDir: false, + resolve: {}, + build: { + lib: { + entry: path.resolve(__dirname, './index.js'), + name: 'layout', + fileName: () => 'index.js', + formats: ['es'] + } + } +}) diff --git a/packages/svgs/index.js b/packages/svgs/index.js index 3e2f262b5..aee3d1cee 100644 --- a/packages/svgs/index.js +++ b/packages/svgs/index.js @@ -11,7 +11,8 @@ */ import SvgIcon from './src/Main.vue' +import metaData from './meta.js' export default (app) => { - app.component('SvgIcon', SvgIcon) + app.component('SvgIcon', { ...metaData, SvgIcon }) } diff --git a/packages/svgs/meta.js b/packages/svgs/meta.js new file mode 100644 index 000000000..bb3532554 --- /dev/null +++ b/packages/svgs/meta.js @@ -0,0 +1,4 @@ +export default { + id: 'engine.svgs', + type: 'svgs' +} diff --git a/packages/svgs/package.json b/packages/svgs/package.json index ba718cc28..c0f4480ed 100644 --- a/packages/svgs/package.json +++ b/packages/svgs/package.json @@ -23,8 +23,11 @@ "author": "OpenTiny Team", "license": "MIT", "homepage": "https://opentiny.design/tiny-engine", - "dependencies": {}, + "dependencies": { + "@opentiny/tiny-engine-entry": "workspace:*" + }, "devDependencies": { + "@opentiny/vite-plugin-generate-comments": "workspace:*", "@vitejs/plugin-vue": "^4.2.3", "@vitejs/plugin-vue-jsx": "^3.1.0", "vite": "^4.3.7" diff --git a/packages/svgs/vite.config.js b/packages/svgs/vite.config.js index 1e52df301..ebf9b63e9 100644 --- a/packages/svgs/vite.config.js +++ b/packages/svgs/vite.config.js @@ -14,10 +14,11 @@ import { defineConfig } from 'vite' import path from 'path' import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' +import generateComment from '@opentiny/vite-plugin-generate-comments' // https://vitejs.dev/config/ export default defineConfig({ - plugins: [vue(), vueJsx()], + plugins: [generateComment(), vue(), vueJsx()], publicDir: false, resolve: {}, build: { diff --git a/packages/theme/dark/index.js b/packages/theme/dark/index.js new file mode 100644 index 000000000..dcf78045f --- /dev/null +++ b/packages/theme/dark/index.js @@ -0,0 +1,5 @@ +import metaData from './meta' + +export default { + ...metaData +} diff --git a/packages/theme/dark/meta.js b/packages/theme/dark/meta.js new file mode 100644 index 000000000..c16f9e2a0 --- /dev/null +++ b/packages/theme/dark/meta.js @@ -0,0 +1,5 @@ +export default { + id: 'engine.theme.dark', + title: '主题', + type: 'theme' +} diff --git a/packages/theme/dark/package.json b/packages/theme/dark/package.json index 6ed0f215a..aa5f3f34c 100644 --- a/packages/theme/dark/package.json +++ b/packages/theme/dark/package.json @@ -22,7 +22,11 @@ "author": "OpenTiny Team", "license": "MIT", "homepage": "https://opentiny.design/tiny-engine", + "dependencies": { + "@opentiny/tiny-engine-entry": "workspace:*" + }, "devDependencies": { + "@opentiny/vite-plugin-generate-comments": "workspace:*", "rimraf": "^3.0.2", "vite": "^4.3.7" } diff --git a/packages/theme/dark/vite.config.js b/packages/theme/dark/vite.config.js index f885fc5f4..ed06a20b1 100644 --- a/packages/theme/dark/vite.config.js +++ b/packages/theme/dark/vite.config.js @@ -1,20 +1,22 @@ /** -* 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. -* -*/ + * 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' +import generateComment from '@opentiny/vite-plugin-generate-comments' // https://vitejs.dev/config/ export default defineConfig({ + plugins: [generateComment()], publicDir: false, build: { lib: { diff --git a/packages/theme/light/index.js b/packages/theme/light/index.js new file mode 100644 index 000000000..dcf78045f --- /dev/null +++ b/packages/theme/light/index.js @@ -0,0 +1,5 @@ +import metaData from './meta' + +export default { + ...metaData +} diff --git a/packages/theme/light/meta.js b/packages/theme/light/meta.js new file mode 100644 index 000000000..e4e4067d1 --- /dev/null +++ b/packages/theme/light/meta.js @@ -0,0 +1,5 @@ +export default { + id: 'engine.theme.light', + title: '主题', + type: 'theme' +} diff --git a/packages/theme/light/package.json b/packages/theme/light/package.json index 375eaf92e..2f57286b9 100644 --- a/packages/theme/light/package.json +++ b/packages/theme/light/package.json @@ -22,7 +22,11 @@ "author": "OpenTiny Team", "license": "MIT", "homepage": "https://opentiny.design/tiny-engine", + "dependencies": { + "@opentiny/tiny-engine-entry": "workspace:*" + }, "devDependencies": { + "@opentiny/vite-plugin-generate-comments": "workspace:*", "rimraf": "^3.0.2", "vite": "^4.3.7" } diff --git a/packages/theme/light/vite.config.js b/packages/theme/light/vite.config.js index 5bfb4b2d6..5c0f88222 100644 --- a/packages/theme/light/vite.config.js +++ b/packages/theme/light/vite.config.js @@ -1,20 +1,22 @@ /** -* 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. -* -*/ + * 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' +import generateComment from '@opentiny/vite-plugin-generate-comments' // https://vitejs.dev/config/ export default defineConfig({ + plugins: [generateComment()], publicDir: false, build: { lib: { diff --git a/packages/utils/index.js b/packages/utils/index.js new file mode 100644 index 000000000..dcf78045f --- /dev/null +++ b/packages/utils/index.js @@ -0,0 +1,5 @@ +import metaData from './meta' + +export default { + ...metaData +} diff --git a/packages/utils/meta.js b/packages/utils/meta.js new file mode 100644 index 000000000..29623bb08 --- /dev/null +++ b/packages/utils/meta.js @@ -0,0 +1,4 @@ +export default { + id: 'engine.utils', + type: 'utils' +} diff --git a/packages/utils/package.json b/packages/utils/package.json index 1e19faed8..aebdc923c 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -27,10 +27,13 @@ "license": "MIT", "homepage": "https://opentiny.design/tiny-engine", "devDependencies": { + "@opentiny/vite-plugin-generate-comments": "workspace:*", "vite": "^4.3.7", "vitest": "^1.4.0" }, - "dependencies": {}, + "dependencies": { + "@opentiny/tiny-engine-entry": "workspace:*" + }, "peerDependencies": { "@opentiny/vue-renderless": "^3.14.0", "vue": "^3.4.15" diff --git a/packages/utils/vite.config.js b/packages/utils/vite.config.js index 60ec86120..0a89e3bf6 100644 --- a/packages/utils/vite.config.js +++ b/packages/utils/vite.config.js @@ -12,10 +12,11 @@ import { defineConfig } from 'vite' import path from 'path' +import generateComment from '@opentiny/vite-plugin-generate-comments' // https://vitejs.dev/config/ export default defineConfig({ - plugins: [], + plugins: [generateComment()], publicDir: false, resolve: {}, build: { diff --git a/packages/vue-generator/index.js b/packages/vue-generator/index.js new file mode 100644 index 000000000..dcf78045f --- /dev/null +++ b/packages/vue-generator/index.js @@ -0,0 +1,5 @@ +import metaData from './meta' + +export default { + ...metaData +} diff --git a/packages/vue-generator/meta.js b/packages/vue-generator/meta.js new file mode 100644 index 000000000..2b15a8094 --- /dev/null +++ b/packages/vue-generator/meta.js @@ -0,0 +1,4 @@ +export default { + id: 'engine.vueGenerator', + type: 'vueGenerator' +} diff --git a/packages/vue-generator/package.json b/packages/vue-generator/package.json index 427979437..ddd873177 100644 --- a/packages/vue-generator/package.json +++ b/packages/vue-generator/package.json @@ -30,6 +30,7 @@ "license": "MIT", "homepage": "https://opentiny.design/tiny-engine", "dependencies": { + "@opentiny/tiny-engine-entry": "workspace:*", "@opentiny/tiny-engine-builtin-component": "workspace:*", "@opentiny/tiny-engine-controller": "workspace:*", "@vue/compiler-sfc": "3.2.45", @@ -38,6 +39,7 @@ "vue-eslint-parser": "8.3.0" }, "devDependencies": { + "@opentiny/vite-plugin-generate-comments": "workspace:*", "@rushstack/eslint-patch": "^1.1.1", "@vitest/coverage-v8": "^1.4.0", "@vue/eslint-config-prettier": "^7.0.0", diff --git a/packages/vue-generator/vite.config.mjs b/packages/vue-generator/vite.config.mjs index 60005cb53..39215b71a 100644 --- a/packages/vue-generator/vite.config.mjs +++ b/packages/vue-generator/vite.config.mjs @@ -13,6 +13,7 @@ import { defineConfig } from 'vite' import path from 'path' import { viteStaticCopy } from 'vite-plugin-static-copy' +import generateComment from '@opentiny/vite-plugin-generate-comments' // https://vitejs.dev/config/ export default defineConfig({ @@ -26,6 +27,7 @@ export default defineConfig({ } }, plugins: [ + generateComment(), viteStaticCopy({ targets: [ {