From 6b8d0c13bc8b9f91c487cac31c8a30d3d0fc9df0 Mon Sep 17 00:00:00 2001 From: 1ncounter <1ncounter.100@gmail.com> Date: Tue, 9 Apr 2024 19:17:59 +0800 Subject: [PATCH] chore: change build config --- packages/designer/package.json | 8 +-- packages/designer/vite.config.ts | 29 +++-------- packages/editor-core/package.json | 6 +-- packages/editor-core/vite.config.ts | 29 +++-------- packages/editor-skeleton/package.json | 8 +-- packages/editor-skeleton/vite.config.ts | 30 +++-------- packages/engine/package.json | 8 +-- packages/engine/vite.config.ts | 48 ++++++++--------- packages/plugin-command/package.json | 16 ++++-- packages/plugin-command/vite.config.ts | 23 +++------ packages/plugin-designer/package.json | 8 +-- packages/plugin-designer/vite.config.ts | 31 +++-------- packages/plugin-outline-pane/package.json | 8 +-- packages/plugin-outline-pane/vite.config.ts | 31 +++-------- packages/react-renderer/package.json | 8 +-- packages/react-renderer/src/api/app.tsx | 4 +- packages/react-renderer/src/component.tsx | 4 +- .../react-renderer/src/components/outlet.tsx | 2 +- .../src/components/router-view.tsx | 2 +- packages/react-renderer/src/context/app.ts | 2 +- packages/react-renderer/src/context/router.ts | 4 +- packages/react-renderer/src/renderer.ts | 2 +- .../react-renderer/src/runtime-api/utils.ts | 2 +- packages/react-renderer/src/signals.ts | 2 +- .../react-renderer/src/utils/reactive.tsx | 2 +- packages/react-renderer/vite.config.ts | 45 +++++++--------- packages/renderer-core/package.json | 6 +-- packages/renderer-core/vite.config.ts | 22 +++----- packages/renderer-router/package.json | 4 +- packages/renderer-router/src/guard.ts | 2 +- packages/renderer-router/src/matcher.ts | 2 +- packages/renderer-router/src/router.ts | 2 +- packages/renderer-router/src/types.ts | 2 +- packages/renderer-router/src/utils/helper.ts | 2 +- packages/renderer-router/vite.config.ts | 27 +++------- packages/types/package.json | 8 +-- packages/types/vite.config.ts | 22 ++------ packages/utils/package.json | 6 +-- packages/utils/vite.config.ts | 29 +++-------- playground/engine/index.html | 3 ++ scripts/build.js | 12 ++--- vite.base.config.ts | 51 +++++++++++++++++++ 42 files changed, 229 insertions(+), 333 deletions(-) create mode 100644 vite.base.config.ts diff --git a/packages/designer/package.json b/packages/designer/package.json index f6e9a2e87..771289710 100644 --- a/packages/designer/package.json +++ b/packages/designer/package.json @@ -3,13 +3,13 @@ "version": "2.0.0-beta.0", "description": "Designer for Ali LowCode Engine", "type": "module", - "main": "dist/designer.cjs", - "module": "dist/designer.js", + "main": "dist/low-code-designer.cjs", + "module": "dist/low-code-designer.js", "types": "dist/index.d.ts", "exports": { ".": { - "import": "./dist/designer.js", - "require": "./dist/designer.cjs", + "import": "./dist/low-code-designer.js", + "require": "./dist/low-code-designer.cjs", "types": "./dist/index.d.ts" } }, diff --git a/packages/designer/vite.config.ts b/packages/designer/vite.config.ts index dd9a94cf0..058bc415d 100644 --- a/packages/designer/vite.config.ts +++ b/packages/designer/vite.config.ts @@ -1,25 +1,8 @@ -import { defineConfig, type LibraryFormats } from 'vite'; -import { resolve } from 'node:path'; -import { env } from 'node:process'; -import react from '@vitejs/plugin-react'; -import { devDependencies, peerDependencies } from './package.json'; +import { defineConfig } from 'vite'; +import baseConfigFn from '../../vite.base.config' -const externals = [...Object.keys(peerDependencies), ...Object.keys(devDependencies)]; -const formats = (env['FORMATS']?.split(',') ?? ['es', 'cjs']) as LibraryFormats[]; - -export default defineConfig({ - build: { - lib: { - // Could also be a dictionary or array of multiple entry points - entry: resolve(import.meta.dirname, 'src/index.ts'), - name: 'LowCodeDesigner', - formats, - // the proper extensions will be added - fileName: 'designer', - }, - rollupOptions: { - external: externals, - }, - }, - plugins: [react()], +export default defineConfig(async () => { + return baseConfigFn({ + name: 'LowCodeDesigner', + }) }); diff --git a/packages/editor-core/package.json b/packages/editor-core/package.json index 0161bce6e..55d6ff50b 100644 --- a/packages/editor-core/package.json +++ b/packages/editor-core/package.json @@ -4,12 +4,12 @@ "description": "Core Api for Ali lowCode engine", "license": "MIT", "type": "module", - "main": "dist/editorCore.js", - "module": "dist/editorCore.js", + "main": "dist/low-code-editor-core.js", + "module": "dist/low-code-editor-core.js", "types": "dist/index.d.ts", "exports": { ".": { - "import": "./dist/editorCore.js", + "import": "./dist/low-code-editor-core.js", "types": "./dist/index.d.ts" } }, diff --git a/packages/editor-core/vite.config.ts b/packages/editor-core/vite.config.ts index 0d5130788..5370172d9 100644 --- a/packages/editor-core/vite.config.ts +++ b/packages/editor-core/vite.config.ts @@ -1,25 +1,8 @@ -import { defineConfig, type LibraryFormats } from 'vite'; -import { resolve } from 'node:path'; -import { env } from 'node:process'; -import react from '@vitejs/plugin-react'; -import { devDependencies, peerDependencies } from './package.json'; +import { defineConfig } from 'vite'; +import baseConfigFn from '../../vite.base.config' -const externals = [...Object.keys(peerDependencies), ...Object.keys(devDependencies)]; -const formats = (env['FORMATS']?.split(',') ?? ['es', 'cjs']) as LibraryFormats[]; - -export default defineConfig({ - build: { - lib: { - // Could also be a dictionary or array of multiple entry points - entry: resolve(import.meta.dirname, 'src/index.ts'), - name: 'LowCodeEditorCore', - formats, - // the proper extensions will be added - fileName: 'editorCore', - }, - rollupOptions: { - external: externals, - }, - }, - plugins: [react()], +export default defineConfig(async () => { + return baseConfigFn({ + name: 'LowCodeEditorCore', + }) }); diff --git a/packages/editor-skeleton/package.json b/packages/editor-skeleton/package.json index 30ae3a978..83b2c0859 100644 --- a/packages/editor-skeleton/package.json +++ b/packages/editor-skeleton/package.json @@ -3,13 +3,13 @@ "version": "2.0.0-beta.0", "description": "alibaba lowcode editor skeleton", "type": "module", - "main": "dist/editorSkeleton.cjs", - "module": "dist/editorSkeleton.js", + "main": "dist/low-code-editor-skeleton.cjs", + "module": "dist/low-code-editor-skeleton.js", "types": "dist/index.d.ts", "exports": { ".": { - "import": "./dist/editorSkeleton.js", - "require": "./dist/editorSkeleton.cjs", + "import": "./dist/low-code-editor-skeleton.js", + "require": "./dist/low-code-editor-skeleton.cjs", "types": "./dist/index.d.ts" } }, diff --git a/packages/editor-skeleton/vite.config.ts b/packages/editor-skeleton/vite.config.ts index 2f5ccf1c0..d543f3d87 100644 --- a/packages/editor-skeleton/vite.config.ts +++ b/packages/editor-skeleton/vite.config.ts @@ -1,25 +1,9 @@ -import { defineConfig, type LibraryFormats } from 'vite'; -import { resolve } from 'node:path'; -import { env } from 'node:process' -import react from '@vitejs/plugin-react'; -import { devDependencies, peerDependencies } from './package.json'; +import { defineConfig } from 'vite'; +import baseConfigFn from '../../vite.base.config' -const externals = [...Object.keys(peerDependencies), ...Object.keys(devDependencies)]; -const formats = (env['FORMATS']?.split(',') ?? ['es', 'cjs']) as LibraryFormats[]; - -export default defineConfig({ - build: { - lib: { - // Could also be a dictionary or array of multiple entry points - entry: resolve(import.meta.dirname, 'src/index.ts'), - name: 'LowCodeEditorSkeleton', - formats, - // the proper extensions will be added - fileName: 'editorSkeleton', - }, - rollupOptions: { - external: externals, - }, - }, - plugins: [react()], +export default defineConfig(async () => { + return baseConfigFn({ + name: 'LowCodeEditorSkeleton', + defaultFormats: ['es', 'cjs'] + }) }); diff --git a/packages/engine/package.json b/packages/engine/package.json index fe7d7af90..e3237effb 100644 --- a/packages/engine/package.json +++ b/packages/engine/package.json @@ -3,13 +3,13 @@ "version": "2.0.0-beta.0", "description": "An enterprise-class low-code technology stack with scale-out design / 一套面向扩展设计的企业级低代码技术体系", "type": "module", - "main": "dist/engine.js", - "module": "dist/engine.js", + "main": "dist/ali-low-code-engine.js", + "module": "dist/ali-low-code-engine.js", "types": "dist/index.d.ts", "exports": { ".": { - "import": "./dist/engine.js", - "require": "./dist/engine.cjs", + "import": "./dist/ali-low-code-engine.js", + "require": "./dist/ali-low-code-engine.cjs", "types": "./dist/index.d.ts" } }, diff --git a/packages/engine/vite.config.ts b/packages/engine/vite.config.ts index 15ada384b..3194fb105 100644 --- a/packages/engine/vite.config.ts +++ b/packages/engine/vite.config.ts @@ -1,33 +1,25 @@ -import { defineConfig, LibraryFormats } from 'vite'; -import { resolve } from 'node:path'; -import { env } from 'node:process'; -import react from '@vitejs/plugin-react'; -import { devDependencies, peerDependencies } from './package.json'; +import { defineConfig, mergeConfig } from 'vite'; +import baseConfigFn from '../../vite.base.config' -const externals = [...Object.keys(peerDependencies), ...Object.keys(devDependencies)]; -const formats = (env['FORMATS']?.split(',') ?? ['es', 'cjs']) as LibraryFormats[]; +export default defineConfig(async () => { + const baseConfig = await baseConfigFn({ + name: 'AliLowCodeEngine', + defaultFormats: ['es', 'cjs'], + }) -export default defineConfig({ - build: { - lib: { - // Could also be a dictionary or array of multiple entry points - entry: resolve(import.meta.dirname, 'src/index.ts'), - name: 'AliLowCodeEngine', - formats, - // the proper extensions will be added - fileName: 'engine', - }, - rollupOptions: { - external: externals, - output: { - // for UMD - globals: { - react: 'React', - 'react-dom': 'ReactDOM', - '@alifd/next': 'Next' + return mergeConfig(baseConfig, defineConfig({ + build: { + rollupOptions: { + output: { + // for UMD + globals: { + react: 'React', + 'react-dom': 'ReactDOM', + '@alifd/next': 'Next' + }, }, }, - }, - }, - plugins: [react()], + } + })) }); + diff --git a/packages/plugin-command/package.json b/packages/plugin-command/package.json index 5bf1e0a39..4b38ba7f3 100644 --- a/packages/plugin-command/package.json +++ b/packages/plugin-command/package.json @@ -6,13 +6,13 @@ "homepage": "https://github.com/alibaba/lowcode-engine#readme", "license": "ISC", "type": "module", - "main": "dist/command.cjs", - "module": "dist/command.js", + "main": "dist/low-code-plugin-command.cjs", + "module": "dist/low-code-plugin-command.js", "types": "dist/index.d.ts", "exports": { ".": { - "import": "./dist/command.js", - "require": "./dist/command.cjs", + "import": "./dist/low-code-plugin-command.js", + "require": "./dist/low-code-plugin-command.cjs", "types": "./dist/index.d.ts" } }, @@ -34,7 +34,13 @@ }, "dependencies": { "@alilc/lowcode-types": "workspace:*", - "@alilc/lowcode-utils": "workspace:*" + "@alilc/lowcode-utils": "workspace:*", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "peerDependencies": { + "react": "^18.2.0", + "react-dom": "^18.2.0" }, "publishConfig": { "access": "public" diff --git a/packages/plugin-command/vite.config.ts b/packages/plugin-command/vite.config.ts index 075a3277b..de443bcd1 100644 --- a/packages/plugin-command/vite.config.ts +++ b/packages/plugin-command/vite.config.ts @@ -1,18 +1,9 @@ -import { defineConfig, LibraryFormats } from 'vite'; -import { resolve } from 'node:path'; -import { env } from 'node:process'; +import { defineConfig } from 'vite'; +import baseConfigFn from '../../vite.base.config' -const formats = (env['FORMATS']?.split(',') ?? ['es', 'cjs']) as LibraryFormats[]; - -export default defineConfig({ - build: { - lib: { - // Could also be a dictionary or array of multiple entry points - entry: resolve(import.meta.dirname, 'src/index.ts'), - name: 'LowCodePluginCommand', - formats, - // the proper extensions will be added - fileName: 'plugin-command', - }, - }, +export default defineConfig(async () => { + return baseConfigFn({ + name: 'LowCodePluginCommand', + defaultFormats: ['es', 'cjs'] + }) }); diff --git a/packages/plugin-designer/package.json b/packages/plugin-designer/package.json index e01f28f7f..6055b5f5a 100644 --- a/packages/plugin-designer/package.json +++ b/packages/plugin-designer/package.json @@ -3,13 +3,13 @@ "version": "2.0.0-beta.0", "description": "alibaba lowcode editor designer plugin", "type": "module", - "main": "dist/designer.cjs", - "module": "dist/designer.js", + "main": "dist/low-code-plugin-designer.cjs", + "module": "dist/low-code-plugin-designer.js", "types": "dist/index.d.ts", "exports": { ".": { - "import": "./dist/designer.js", - "require": "./dist/designer.cjs", + "import": "./dist/low-code-plugin-designer.js", + "require": "./dist/low-code-plugin-designer.cjs", "types": "./dist/index.d.ts" } }, diff --git a/packages/plugin-designer/vite.config.ts b/packages/plugin-designer/vite.config.ts index 98a14be1e..e3d1909dc 100644 --- a/packages/plugin-designer/vite.config.ts +++ b/packages/plugin-designer/vite.config.ts @@ -1,25 +1,10 @@ -import { defineConfig, LibraryFormats } from 'vite'; -import { env } from 'node:process'; -import { resolve } from 'node:path'; -import react from '@vitejs/plugin-react'; -import { devDependencies, peerDependencies } from './package.json'; +import { defineConfig } from 'vite'; +import baseConfigFn from '../../vite.base.config' -const externals = [...Object.keys(peerDependencies), ...Object.keys(devDependencies)]; -const formats = (env['FORMATS']?.split(',') ?? ['es', 'cjs']) as LibraryFormats[]; - -export default defineConfig({ - build: { - lib: { - // Could also be a dictionary or array of multiple entry points - entry: resolve(import.meta.dirname, 'src/index.tsx'), - name: 'LowCodePluginDesigner', - formats, - // the proper extensions will be added - fileName: 'plugin-designer', - }, - rollupOptions: { - external: externals, - }, - }, - plugins: [react()], +export default defineConfig(async () => { + return baseConfigFn({ + name: 'LowCodePluginDesigner', + defaultFormats: ['es', 'cjs'], + entry: 'src/index.tsx' + }) }); diff --git a/packages/plugin-outline-pane/package.json b/packages/plugin-outline-pane/package.json index 2e3d35520..0c403a04e 100644 --- a/packages/plugin-outline-pane/package.json +++ b/packages/plugin-outline-pane/package.json @@ -3,13 +3,13 @@ "version": "1.3.2", "description": "Outline pane for Ali lowCode engine", "type": "module", - "main": "dist/plugin-outline-pane.cjs", - "module": "dist/plugin-outline-pane.js", + "main": "dist/low-code-plugin-outline-pane.cjs", + "module": "dist/low-code-plugin-outline-pane.js", "types": "dist/index.d.ts", "exports": { ".": { - "import": "./dist/plugin-outline-pane.js", - "require": "./dist/plugin-outline-pane.cjs", + "import": "./dist/low-code-plugin-outline-pane.js", + "require": "./dist/low-code-plugin-outline-pane.cjs", "types": "./dist/index.d.ts" } }, diff --git a/packages/plugin-outline-pane/vite.config.ts b/packages/plugin-outline-pane/vite.config.ts index 5f6673d21..36c79542e 100644 --- a/packages/plugin-outline-pane/vite.config.ts +++ b/packages/plugin-outline-pane/vite.config.ts @@ -1,25 +1,10 @@ -import { defineConfig, LibraryFormats } from 'vite'; -import { env } from 'node:process'; -import { resolve } from 'node:path'; -import react from '@vitejs/plugin-react'; -import { devDependencies, peerDependencies } from './package.json'; +import { defineConfig } from 'vite'; +import baseConfigFn from '../../vite.base.config' -const externals = [...Object.keys(peerDependencies), ...Object.keys(devDependencies)]; -const formats = (env['FORMATS']?.split(',') ?? ['es', 'cjs']) as LibraryFormats[]; - -export default defineConfig({ - build: { - lib: { - // Could also be a dictionary or array of multiple entry points - entry: resolve(import.meta.dirname, 'src/index.tsx'), - name: 'LowCodePluginOutlinePane', - formats, - // the proper extensions will be added - fileName: 'plugin-outline-pane', - }, - rollupOptions: { - external: externals, - }, - }, - plugins: [react()], +export default defineConfig(async () => { + return baseConfigFn({ + name: 'LowCodePluginOutlinePane', + defaultFormats: ['es', 'cjs'], + entry: 'src/index.tsx' + }) }); diff --git a/packages/react-renderer/package.json b/packages/react-renderer/package.json index 5013a3a1c..c2224fea9 100644 --- a/packages/react-renderer/package.json +++ b/packages/react-renderer/package.json @@ -6,13 +6,13 @@ "bugs": "https://github.com/alibaba/lowcode-engine/issues", "homepage": "https://github.com/alibaba/lowcode-engine/#readme", "license": "MIT", - "main": "dist/reactRenderer.cjs", - "module": "dist/reactRenderer.js", + "main": "dist/low-code-react-renderer.cjs", + "module": "dist/low-code-react-renderer.js", "types": "dist/index.d.ts", "exports": { ".": { - "import": "./dist/reactRenderer.js", - "require": "./dist/reactRenderer.cjs", + "import": "./dist/low-code-react-renderer.js", + "require": "./dist/low-code-react-renderer.cjs", "types": "./dist/index.d.ts" } }, diff --git a/packages/react-renderer/src/api/app.tsx b/packages/react-renderer/src/api/app.tsx index 7440cf42b..f1596ce19 100644 --- a/packages/react-renderer/src/api/app.tsx +++ b/packages/react-renderer/src/api/app.tsx @@ -3,10 +3,10 @@ import { type AppBase, createAppFunction, type AppOptionsBase, -} from '@alilc/renderer-core'; +} from '@alilc/lowcode-renderer-core'; import { type ComponentType } from 'react'; import { type Root, createRoot } from 'react-dom/client'; -import { createRouter } from '@alilc/runtime-router'; +import { createRouter } from '@alilc/lowcode-renderer-router'; import { createRenderer } from '../renderer'; import AppComponent from '../components/app'; import { createIntl } from '../runtime-api/intl'; diff --git a/packages/react-renderer/src/component.tsx b/packages/react-renderer/src/component.tsx index e75e4024a..70a17484e 100644 --- a/packages/react-renderer/src/component.tsx +++ b/packages/react-renderer/src/component.tsx @@ -9,7 +9,7 @@ import { isJSFunction, isJSSlot, someValue, -} from '@alilc/renderer-core'; +} from '@alilc/lowcode-renderer-core'; import { isPlainObject } from 'lodash-es'; import { forwardRef, useRef, useEffect, createElement, useMemo } from 'react'; import { createSignal, watch } from './signals'; @@ -26,7 +26,7 @@ import type { JSSlot, JSFunction, I18nNode, -} from '@alilc/renderer-core'; +} from '@alilc/lowcode-renderer-core'; import type { ComponentType, ReactInstance, diff --git a/packages/react-renderer/src/components/outlet.tsx b/packages/react-renderer/src/components/outlet.tsx index 62c7be1b1..f62d3b8b6 100644 --- a/packages/react-renderer/src/components/outlet.tsx +++ b/packages/react-renderer/src/components/outlet.tsx @@ -1,4 +1,4 @@ -import type { PageConfig, ComponentTree } from '@alilc/renderer-core'; +import type { PageConfig, ComponentTree } from '@alilc/lowcode-renderer-core'; import { useAppContext } from '../context/app'; import { createComponent } from '../component'; diff --git a/packages/react-renderer/src/components/router-view.tsx b/packages/react-renderer/src/components/router-view.tsx index 5861e8b19..7032f1b01 100644 --- a/packages/react-renderer/src/components/router-view.tsx +++ b/packages/react-renderer/src/components/router-view.tsx @@ -1,4 +1,4 @@ -import { type Router } from '@alilc/runtime-router'; +import { type Router } from '@alilc/lowcode-renderer-router'; import { useState, useLayoutEffect, useMemo, type ReactNode } from 'react'; import { RouterContext, RouteLocationContext, PageConfigContext } from '../context/router'; import { useAppContext } from '../context/app'; diff --git a/packages/react-renderer/src/context/app.ts b/packages/react-renderer/src/context/app.ts index 5212475d8..e54836ebc 100644 --- a/packages/react-renderer/src/context/app.ts +++ b/packages/react-renderer/src/context/app.ts @@ -1,5 +1,5 @@ import { createContext, useContext } from 'react'; -import { type AppContext as AppContextType } from '@alilc/renderer-core'; +import { type AppContext as AppContextType } from '@alilc/lowcode-renderer-core'; import { type ReactRenderer } from '../renderer'; export interface AppContextObject extends AppContextType { diff --git a/packages/react-renderer/src/context/router.ts b/packages/react-renderer/src/context/router.ts index e0c4b647f..376f78a04 100644 --- a/packages/react-renderer/src/context/router.ts +++ b/packages/react-renderer/src/context/router.ts @@ -1,5 +1,5 @@ -import { type Router, type RouteLocationNormalized } from '@alilc/runtime-router'; -import { type PageConfig } from '@alilc/renderer-core'; +import { type Router, type RouteLocationNormalized } from '@alilc/lowcode-renderer-router'; +import { type PageConfig } from '@alilc/lowcode-renderer-core'; import { createContext, useContext } from 'react'; export const RouterContext = createContext({} as any); diff --git a/packages/react-renderer/src/renderer.ts b/packages/react-renderer/src/renderer.ts index 959d646e7..45761779d 100644 --- a/packages/react-renderer/src/renderer.ts +++ b/packages/react-renderer/src/renderer.ts @@ -2,7 +2,7 @@ import { definePlugin as definePluginFn, type Plugin, type PluginSetupContext, -} from '@alilc/renderer-core'; +} from '@alilc/lowcode-renderer-core'; import { type ComponentType, type PropsWithChildren } from 'react'; import { type OutletProps } from './components/outlet'; diff --git a/packages/react-renderer/src/runtime-api/utils.ts b/packages/react-renderer/src/runtime-api/utils.ts index 270e7a76e..c3dee4078 100644 --- a/packages/react-renderer/src/runtime-api/utils.ts +++ b/packages/react-renderer/src/runtime-api/utils.ts @@ -4,7 +4,7 @@ import { type AnyFunction, type Util, type UtilsApi, -} from '@alilc/renderer-core'; +} from '@alilc/lowcode-renderer-core'; export interface RuntimeUtils extends UtilsApi { addUtil(utilItem: Util): void; diff --git a/packages/react-renderer/src/signals.ts b/packages/react-renderer/src/signals.ts index bd5d606a8..b6287ffa2 100644 --- a/packages/react-renderer/src/signals.ts +++ b/packages/react-renderer/src/signals.ts @@ -1,4 +1,4 @@ -import { type PlainObject } from '@alilc/renderer-core'; +import { type PlainObject } from '@alilc/lowcode-renderer-core'; import { ref, computed, diff --git a/packages/react-renderer/src/utils/reactive.tsx b/packages/react-renderer/src/utils/reactive.tsx index 782587cf1..afeab8c1f 100644 --- a/packages/react-renderer/src/utils/reactive.tsx +++ b/packages/react-renderer/src/utils/reactive.tsx @@ -4,7 +4,7 @@ import { type PlainObject, type JSExpression, isJSExpression, -} from '@alilc/renderer-core'; +} from '@alilc/lowcode-renderer-core'; import { type ComponentType, memo, forwardRef, type PropsWithChildren, createElement } from 'react'; import { produce } from 'immer'; import hoistNonReactStatics from 'hoist-non-react-statics'; diff --git a/packages/react-renderer/vite.config.ts b/packages/react-renderer/vite.config.ts index 7c00911b9..583d00cd2 100644 --- a/packages/react-renderer/vite.config.ts +++ b/packages/react-renderer/vite.config.ts @@ -1,32 +1,23 @@ -import { defineConfig, LibraryFormats } from 'vite'; -import { env } from 'node:process'; -import { resolve } from 'node:path'; -import react from '@vitejs/plugin-react'; -import { devDependencies, peerDependencies } from './package.json'; +import { defineConfig, mergeConfig } from 'vite'; +import baseConfigFn from '../../vite.base.config' -const externals = [...Object.keys(peerDependencies), ...Object.keys(devDependencies)]; -const formats = (env['FORMATS']?.split(',') ?? ['es', 'cjs', 'iife']) as LibraryFormats[]; +export default defineConfig(async () => { + const baseConfig = await baseConfigFn({ + name: 'LowCodeReactRenderer', + defaultFormats: ['es', 'cjs'], + }) -export default defineConfig({ - build: { - lib: { - // Could also be a dictionary or array of multiple entry points - entry: resolve(import.meta.dirname, 'src/index.ts'), - name: 'LowCodeReactRenderer', - formats, - // the proper extensions will be added - fileName: 'reactRenderer', - }, - rollupOptions: { - external: externals, - output: { - // for UMD - globals: { - react: 'React', - 'react-dom': 'ReactDOM', + return mergeConfig(baseConfig, defineConfig({ + build: { + rollupOptions: { + output: { + // for UMD + globals: { + react: 'React', + 'react-dom': 'ReactDOM', + }, }, }, - }, - }, - plugins: [react()], + } + })) }); diff --git a/packages/renderer-core/package.json b/packages/renderer-core/package.json index e1f5fbd91..51a531c2a 100644 --- a/packages/renderer-core/package.json +++ b/packages/renderer-core/package.json @@ -6,12 +6,12 @@ "bugs": "https://github.com/alibaba/lowcode-engine/issues", "homepage": "https://github.com/alibaba/lowcode-engine/#readme", "license": "MIT", - "main": "dist/rendererCore.js", - "module": "dist/rendererCore.js", + "main": "dist/low-code-renderer-core.js", + "module": "dist/low-code-renderer-core.js", "types": "dist/index.d.ts", "exports": { ".": { - "import": "./dist/rendererCore.js", + "import": "./dist/low-code-renderer-core.js", "types": "./dist/index.d.ts" } }, diff --git a/packages/renderer-core/vite.config.ts b/packages/renderer-core/vite.config.ts index 77502af8e..38efe9f37 100644 --- a/packages/renderer-core/vite.config.ts +++ b/packages/renderer-core/vite.config.ts @@ -1,18 +1,8 @@ -import { defineConfig, LibraryFormats } from 'vite'; -import { env } from 'node:process'; -import { resolve } from 'node:path'; +import { defineConfig } from 'vite'; +import baseConfigFn from '../../vite.base.config' -const formats = (env['FORMATS']?.split(',') ?? ['es']) as LibraryFormats[]; - -export default defineConfig({ - build: { - lib: { - // Could also be a dictionary or array of multiple entry points - entry: resolve(import.meta.dirname, 'src/index.ts'), - name: 'LowCodeRendererCore', - formats, - // the proper extensions will be added - fileName: 'rendererCore', - }, - }, +export default defineConfig(async () => { + return baseConfigFn({ + name: 'LowCodeRendererCore', + }) }); diff --git a/packages/renderer-router/package.json b/packages/renderer-router/package.json index e17067d78..a6c331634 100644 --- a/packages/renderer-router/package.json +++ b/packages/renderer-router/package.json @@ -6,11 +6,11 @@ "bugs": "https://github.com/alibaba/lowcode-engine/issues", "homepage": "https://github.com/alibaba/lowcode-engine/#readme", "license": "MIT", - "module": "dist/runtimeRouter.js", + "module": "dist/low-code-runtime-router.js", "types": "dist/index.d.ts", "exports": { ".": { - "import": "./dist/runtimeRouter.js", + "import": "./dist/low-code-runtime-router.js", "types": "./dist/index.d.ts" } }, diff --git a/packages/renderer-router/src/guard.ts b/packages/renderer-router/src/guard.ts index 7c39a9383..361c799ca 100644 --- a/packages/renderer-router/src/guard.ts +++ b/packages/renderer-router/src/guard.ts @@ -1,4 +1,4 @@ -import { RawRouteLocation } from '@alilc/renderer-core'; +import { RawRouteLocation } from '@alilc/lowcode-renderer-core'; import { type RouteLocationNormalized } from './types'; import { isRouteLocation } from './utils/helper'; diff --git a/packages/renderer-router/src/matcher.ts b/packages/renderer-router/src/matcher.ts index fc4404c44..3db4ee677 100644 --- a/packages/renderer-router/src/matcher.ts +++ b/packages/renderer-router/src/matcher.ts @@ -1,4 +1,4 @@ -import { type PlainObject, type RawLocation } from '@alilc/renderer-core'; +import { type PlainObject, type RawLocation } from '@alilc/lowcode-renderer-core'; import { pick } from 'lodash-es'; import { createRouteRecordMatcher, type RouteRecordMatcher } from './utils/record-matcher'; import { type PathParserOptions } from './utils/path-parser'; diff --git a/packages/renderer-router/src/router.ts b/packages/renderer-router/src/router.ts index 6375fb5c2..1b61ab9bb 100644 --- a/packages/renderer-router/src/router.ts +++ b/packages/renderer-router/src/router.ts @@ -5,7 +5,7 @@ import { useEvent, type RawRouteLocation, type RawLocationOptions, -} from '@alilc/renderer-core'; +} from '@alilc/lowcode-renderer-core'; import { createBrowserHistory, createHashHistory, diff --git a/packages/renderer-router/src/types.ts b/packages/renderer-router/src/types.ts index 4b7adb6d6..6c164723e 100644 --- a/packages/renderer-router/src/types.ts +++ b/packages/renderer-router/src/types.ts @@ -3,7 +3,7 @@ import type { RouteLocation, PlainObject, RawRouteLocation, -} from '@alilc/renderer-core'; +} from '@alilc/lowcode-renderer-core'; import type { PathParserOptions } from './utils/path-parser'; export interface RouteRecord extends RouterRecordSpec, PathParserOptions { diff --git a/packages/renderer-router/src/utils/helper.ts b/packages/renderer-router/src/utils/helper.ts index f8384b68e..46a611efd 100644 --- a/packages/renderer-router/src/utils/helper.ts +++ b/packages/renderer-router/src/utils/helper.ts @@ -1,4 +1,4 @@ -import type { RawRouteLocation } from '@alilc/renderer-core'; +import type { RawRouteLocation } from '@alilc/lowcode-renderer-core'; import type { RouteLocationNormalized } from '../types'; export function isRouteLocation(route: any): route is RawRouteLocation { diff --git a/packages/renderer-router/vite.config.ts b/packages/renderer-router/vite.config.ts index 373e2e653..e4e227ede 100644 --- a/packages/renderer-router/vite.config.ts +++ b/packages/renderer-router/vite.config.ts @@ -1,23 +1,8 @@ -import { defineConfig, LibraryFormats } from 'vite'; -import { env } from 'node:process'; -import { resolve } from 'node:path'; -import { devDependencies, peerDependencies } from './package.json'; +import { defineConfig } from 'vite'; +import baseConfigFn from '../../vite.base.config' -const externals = [...Object.keys(peerDependencies), ...Object.keys(devDependencies)]; -const formats = (env['FORMATS']?.split(',') ?? ['es', 'cjs']) as LibraryFormats[]; - -export default defineConfig({ - build: { - lib: { - // Could also be a dictionary or array of multiple entry points - entry: resolve(import.meta.dirname, 'src/index.ts'), - name: 'LowCodeRuntimeRouter', - formats, - // the proper extensions will be added - fileName: 'runtimeRouter', - }, - rollupOptions: { - external: externals, - }, - }, +export default defineConfig(async () => { + return baseConfigFn({ + name: 'LowCodeRuntimeRouter', + }) }); diff --git a/packages/types/package.json b/packages/types/package.json index f3edf6eb8..c17197fa3 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -3,13 +3,13 @@ "version": "2.0.0-beta.0", "description": "Types for Ali lowCode engine", "type": "module", - "main": "dist/lowcodeTypes.js", - "module": "dist/lowcodeTypes.js", + "main": "dist/low-code-types.js", + "module": "dist/low-code-types.js", "types": "dist/index.d.ts", "exports": { ".": { - "import": "./dist/lowcodeTypes.js", - "module": "./dist/lowcodeTypes.js", + "import": "./dist/low-code-types.js", + "module": "./dist/low-code-types.js", "types": "./dist/index.d.ts" }, "./package.json": "./package.json" diff --git a/packages/types/vite.config.ts b/packages/types/vite.config.ts index 037f31fe3..ad9c0cf99 100644 --- a/packages/types/vite.config.ts +++ b/packages/types/vite.config.ts @@ -1,18 +1,6 @@ -import { defineConfig, LibraryFormats } from 'vite'; -import { resolve } from 'node:path'; -import { env } from 'node:process'; +import { defineConfig } from 'vite'; +import baseConfigFn from '../../vite.base.config' -const formats = (env['FORMATS']?.split(',') ?? ['es']) as LibraryFormats[]; - -export default defineConfig({ - build: { - lib: { - // Could also be a dictionary or array of multiple entry points - entry: resolve(import.meta.dirname, 'src/index.ts'), - name: 'LowcodeTypes', - formats, - // the proper extensions will be added - fileName: 'lowcodeTypes', - }, - }, -}); +export default defineConfig(async () => baseConfigFn({ + name: 'LowCodeTypes', +})); diff --git a/packages/utils/package.json b/packages/utils/package.json index 08563f981..2172b5c10 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -3,12 +3,12 @@ "version": "2.0.0-beta.0", "description": "Utils for Ali lowCode engine", "type": "module", - "main": "lib/index.js", - "module": "dist/index.js", + "main": "lib/low-code-utils.js", + "module": "dist/low-code-utils.js", "types": "dist/index.d.ts", "exports": { ".": { - "import": "./dist/lowCodeUtils.js", + "import": "./dist/low-code-utils.js", "types": "./dist/index.d.ts" }, "./package.json": "./package.json" diff --git a/packages/utils/vite.config.ts b/packages/utils/vite.config.ts index 2be1f6a7e..c19b51f49 100644 --- a/packages/utils/vite.config.ts +++ b/packages/utils/vite.config.ts @@ -1,25 +1,8 @@ -import { defineConfig, LibraryFormats } from 'vite'; -import { resolve } from 'node:path'; -import { env } from 'node:process'; -import react from '@vitejs/plugin-react'; -import { devDependencies, peerDependencies } from './package.json'; +import { defineConfig, } from 'vite'; +import baseConfigFn from '../../vite.base.config' -const externals = [...Object.keys(peerDependencies), ...Object.keys(devDependencies)]; -const formats = (env['FORMATS']?.split(',') ?? ['es']) as LibraryFormats[]; - -export default defineConfig({ - build: { - lib: { - entry: resolve(import.meta.dirname, 'src/index.ts'), - name: 'LowCodeUtils', - formats, - fileName: 'lowCodeUtils', - }, - rollupOptions: { - external: externals, - }, - }, - plugins: [ - react(), - ], +export default defineConfig(async () => { + return baseConfigFn({ + name: 'LowCodeUtils', + }) }); diff --git a/playground/engine/index.html b/playground/engine/index.html index ef90d1eb5..b85032995 100644 --- a/playground/engine/index.html +++ b/playground/engine/index.html @@ -7,6 +7,9 @@
+ + + diff --git a/scripts/build.js b/scripts/build.js index 85e6b3243..15df7a2c2 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -1,25 +1,21 @@ -import { resolve } from 'node:path'; -import { existsSync } from 'node:fs'; -import { readdir } from 'node:fs/promises'; import { argv, cwd } from 'node:process'; import minimist from 'minimist'; import { execa } from 'execa'; import { findWorkspacePackages } from '@pnpm/workspace.find-packages' const args = minimist(argv.slice(2)); -const targets = args['_'][0]; +const targets = args['_']; const formatArgs = args['formats']; const prod = args['prod'] || args['p']; async function run() { const packages = await findWorkspacePackages(cwd()); const targetPackageName = `@alilc/lowcode-${targets[0]}` - const finalName = packages - .filter((item) => item.manifest.name.includes(targetPackageName)) - .filter((dir) => existsSync(resolve(packagesUrl.pathname, dir))); + .filter((item) => item.manifest.name === targetPackageName) + .map(item => item.manifest.name); - await execa('pnpm', ['--filter', finalName, 'build:target'], { + await execa('pnpm', ['--filter', finalName[0], 'build:target'], { stdio: 'inherit', env: { FORMATS: !prod ? formatArgs : undefined, diff --git a/vite.base.config.ts b/vite.base.config.ts new file mode 100644 index 000000000..bba4c8496 --- /dev/null +++ b/vite.base.config.ts @@ -0,0 +1,51 @@ +import { defineConfig, LibraryFormats } from 'vite'; +import { env, cwd } from 'node:process'; +import { resolve } from 'node:path'; +import { readFile } from 'node:fs/promises' +import react from '@vitejs/plugin-react'; + +interface Options { + name: string; + entry?: string; + defaultFormats?: LibraryFormats[]; + externalDeps?: boolean; +} + +const resolvePath = (path: string) => resolve(cwd(), path) + +export default async ({ name, entry = 'src/index.ts', defaultFormats = ['es'], externalDeps = true }: Options) => { + const formats = (env['FORMATS']?.split(',') ?? defaultFormats) as LibraryFormats[]; + + let externals: string[] = []; + + if (externalDeps) { + const { peerDependencies = {}, devDependencies = {} } = await getPackageJson(resolvePath('package.json')); + externals = [...Object.keys(peerDependencies), ...Object.keys(devDependencies)]; + } + + return defineConfig({ + build: { + lib: { + entry: resolvePath(entry), + name, + fileName: camelCaseToKebabCase(name), + formats, + }, + minify: false, + rollupOptions: { + external: externals + } + }, + plugins: [react()], + }); +}; + +function camelCaseToKebabCase(str: string) { + // 使用正则表达式匹配大写字母 + return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase(); +} + +async function getPackageJson(path: string) { + const content = await readFile(path, 'utf-8'); + return JSON.parse(content); +}