refactor: 悦码项目重构
This commit is contained in:
22
apps/renderer/.gitignore
vendored
Normal file
22
apps/renderer/.gitignore
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
lerna-debug.log*
|
||||
|
||||
node_modules
|
||||
dist
|
||||
dist-ssr
|
||||
*.local
|
||||
|
||||
# Editor directories and files
|
||||
.vscode/*
|
||||
!.vscode/extensions.json
|
||||
.idea
|
||||
.DS_Store
|
||||
*.suo
|
||||
*.sln
|
||||
*.sw?
|
||||
7
apps/renderer/.npmrc
Normal file
7
apps/renderer/.npmrc
Normal file
@@ -0,0 +1,7 @@
|
||||
# 使用淘宝镜像源
|
||||
registry = https://registry.npmmirror.com
|
||||
@sy:registry=http://sy-registry.shiyue.com
|
||||
|
||||
enable-pre-post-scripts=true
|
||||
engine-strict=true
|
||||
package-manager-strict=false
|
||||
37
apps/renderer/README.md
Normal file
37
apps/renderer/README.md
Normal file
@@ -0,0 +1,37 @@
|
||||
# Farm + Vue
|
||||
|
||||
This template should help you start developing using Vue and TypeScript in Farm.
|
||||
|
||||
## Setup
|
||||
|
||||
Install the dependencies:
|
||||
|
||||
```bash
|
||||
pnpm install
|
||||
```
|
||||
|
||||
## Get Started
|
||||
|
||||
Start the dev server:
|
||||
|
||||
```bash
|
||||
pnpm start
|
||||
```
|
||||
|
||||
Build the app for production:
|
||||
|
||||
```bash
|
||||
pnpm build
|
||||
```
|
||||
|
||||
Preview the Production build product:
|
||||
|
||||
```bash
|
||||
pnpm preview
|
||||
```
|
||||
|
||||
Clear persistent cache local files
|
||||
|
||||
```bash
|
||||
pnpm clean
|
||||
```
|
||||
14
apps/renderer/farm.config.ts
Normal file
14
apps/renderer/farm.config.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import { defineConfig } from "@farmfe/core";
|
||||
import vue from "@vitejs/plugin-vue";
|
||||
import mkcert from "vite-plugin-mkcert";
|
||||
import Http2Proxy from "@sy/vite-plugin-http2-proxy";
|
||||
|
||||
export default defineConfig({
|
||||
server: {
|
||||
// 本地开发时允许跨域访问该项目
|
||||
port: 10010,
|
||||
cors: true,
|
||||
},
|
||||
// @ts-ignore
|
||||
vitePlugins: [vue(), mkcert({ source: "coding" }), Http2Proxy()],
|
||||
});
|
||||
14
apps/renderer/index.html
Normal file
14
apps/renderer/index.html
Normal file
@@ -0,0 +1,14 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.ico" />
|
||||
<title>Farm + Vue3 + TS</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="low-code-renderer"></div>
|
||||
<script src="./src/index.ts"></script>
|
||||
</body>
|
||||
</html>
|
||||
33
apps/renderer/package.json
Normal file
33
apps/renderer/package.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"name": "@sy/low-code-renderer",
|
||||
"version": "1.0.0",
|
||||
"scripts": {
|
||||
"dev": "farm start",
|
||||
"start": "farm start",
|
||||
"build": "farm build",
|
||||
"preview": "farm preview",
|
||||
"clean": "farm clean",
|
||||
"clean:lock": "rimraf pnpm-lock.yaml && rimraf package.lock.json",
|
||||
"clean:lib": "rimraf node_modules",
|
||||
"test": "echo 'test"
|
||||
},
|
||||
"dependencies": {
|
||||
"@sy/low-code-shared": "workspace:*",
|
||||
"@sy/web-vitals": "workspace:*",
|
||||
"@vtj/core": "^0.9.30",
|
||||
"@vtj/materials": "^0.9.30",
|
||||
"@vtj/renderer": "^0.9.30",
|
||||
"core-js": "^3.40.0",
|
||||
"element-plus": "^2.9.4",
|
||||
"licia-es": "^1.46.0",
|
||||
"rrweb": "2.0.0-alpha.4",
|
||||
"vue": "^3.5.13"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@farmfe/cli": "^1.0.4",
|
||||
"@farmfe/core": "^1.6.6",
|
||||
"@sy/vite-plugin-http2-proxy": "workspace:*",
|
||||
"@vitejs/plugin-vue": "^5.2.1",
|
||||
"vite-plugin-mkcert": "^1.17.6"
|
||||
}
|
||||
}
|
||||
BIN
apps/renderer/public/favicon.ico
Normal file
BIN
apps/renderer/public/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.1 KiB |
111
apps/renderer/src/App.vue
Normal file
111
apps/renderer/src/App.vue
Normal file
@@ -0,0 +1,111 @@
|
||||
<script setup lang="ts">
|
||||
import { createRenderer } from '@vtj/renderer'
|
||||
import { type BlockSchema } from '@vtj/core'
|
||||
|
||||
const dsl: BlockSchema = {
|
||||
"name": "Tes",
|
||||
"locked": false,
|
||||
"inject": [],
|
||||
"state": {},
|
||||
"lifeCycles": {},
|
||||
"methods": {},
|
||||
"computed": {},
|
||||
"watch": [],
|
||||
"css": "",
|
||||
"props": [],
|
||||
"emits": [],
|
||||
"slots": [],
|
||||
"dataSources": {},
|
||||
"__VTJ_BLOCK__": true,
|
||||
"__VERSION__": "1739787968332",
|
||||
"id": "45t6ex2qh",
|
||||
"nodes": [
|
||||
{
|
||||
"id": "esmzkcp2p",
|
||||
"name": "ElButton",
|
||||
"from": "element-plus",
|
||||
"invisible": false,
|
||||
"locked": false,
|
||||
"children": "按钮",
|
||||
"props": {
|
||||
"type": "primary"
|
||||
},
|
||||
"directives": [],
|
||||
"events": {
|
||||
"click": {
|
||||
"name": "click",
|
||||
"handler": {
|
||||
"type": "JSFunction",
|
||||
"value": "() => {\r\n console.log('1231111')\r\n}"
|
||||
},
|
||||
"modifiers": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "26lluhulco",
|
||||
"name": "ElImage",
|
||||
"from": "element-plus",
|
||||
"invisible": false,
|
||||
"locked": false,
|
||||
"children": [],
|
||||
"props": {
|
||||
"style": {
|
||||
"width": "100px",
|
||||
"height": "100px"
|
||||
},
|
||||
"src": "https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg",
|
||||
"previewSrcList": [
|
||||
"https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg",
|
||||
"https://fuss10.elemecdn.com/1/34/19aa98b1fcb2781c4fba33d850549jpeg.jpeg",
|
||||
"https://fuss10.elemecdn.com/0/6f/e35ff375812e6b0020b6b4e8f9583jpeg.jpeg",
|
||||
"https://fuss10.elemecdn.com/9/bb/e27858e973f5d7d3904835f46abbdjpeg.jpeg",
|
||||
"https://fuss10.elemecdn.com/d/e6/c4d93a3805b3ce3f323f7974e6f78jpeg.jpeg",
|
||||
"https://fuss10.elemecdn.com/3/28/bbf893f792f03a54408b3b7a7ebf0jpeg.jpeg",
|
||||
"https://fuss10.elemecdn.com/2/11/6535bcfb26e4c79b48ddde44f4b6fjpeg.jpeg"
|
||||
]
|
||||
},
|
||||
"directives": [],
|
||||
"events": {}
|
||||
},
|
||||
{
|
||||
"id": "45t6mmt7r",
|
||||
"name": "ElDialog",
|
||||
"from": "element-plus",
|
||||
"invisible": false,
|
||||
"locked": false,
|
||||
"children": "对话框弹窗内容",
|
||||
"props": {
|
||||
"title": "标题",
|
||||
"modelValue": true
|
||||
},
|
||||
"directives": [],
|
||||
"events": {}
|
||||
},
|
||||
{
|
||||
"id": "7pf44qdhl",
|
||||
"name": "ElContainer",
|
||||
"from": "element-plus",
|
||||
"invisible": false,
|
||||
"locked": false,
|
||||
"children": [],
|
||||
"props": {
|
||||
"style": {
|
||||
"width": "100%",
|
||||
"height": "100%"
|
||||
}
|
||||
},
|
||||
"directives": [],
|
||||
"events": {}
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
const { renderer } = createRenderer({
|
||||
dsl,
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<component :is="renderer" />
|
||||
</template>
|
||||
BIN
apps/renderer/src/assets/logo.png
Normal file
BIN
apps/renderer/src/assets/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
1
apps/renderer/src/assets/vue.svg
Normal file
1
apps/renderer/src/assets/vue.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="37.07" height="36" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 198"><path fill="#41B883" d="M204.8 0H256L128 220.8L0 0h97.92L128 51.2L157.44 0h47.36Z"></path><path fill="#41B883" d="m0 0l128 220.8L256 0h-51.2L128 132.48L50.56 0H0Z"></path><path fill="#35495E" d="M50.56 0L128 133.12L204.8 0h-47.36L128 51.2L97.92 0H50.56Z"></path></svg>
|
||||
|
After Width: | Height: | Size: 496 B |
2
apps/renderer/src/env.d.ts
vendored
Normal file
2
apps/renderer/src/env.d.ts
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
declare module '*.vue';
|
||||
declare module '*.svg';
|
||||
9
apps/renderer/src/index.ts
Normal file
9
apps/renderer/src/index.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import { createApp } from "vue";
|
||||
import "@sy/web-vitals";
|
||||
// import "@sy/low-code-shared/styles/reset.css";
|
||||
|
||||
import App from "./App.vue";
|
||||
import ElementPlus from "element-plus";
|
||||
import "element-plus/dist/index.css";
|
||||
|
||||
createApp(App).use(ElementPlus).mount("#low-code-renderer");
|
||||
0
apps/renderer/src/style.css
Normal file
0
apps/renderer/src/style.css
Normal file
25
apps/renderer/tsconfig.json
Normal file
25
apps/renderer/tsconfig.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "ES2020",
|
||||
"useDefineForClassFields": true,
|
||||
"module": "ESNext",
|
||||
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
||||
"skipLibCheck": true,
|
||||
|
||||
/* Bundler mode */
|
||||
"moduleResolution": "bundler",
|
||||
"allowImportingTsExtensions": true,
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"noEmit": true,
|
||||
"jsx": "preserve",
|
||||
|
||||
/* Linting */
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"noFallthroughCasesInSwitch": true
|
||||
},
|
||||
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"],
|
||||
"references": [{ "path": "./tsconfig.node.json" }]
|
||||
}
|
||||
11
apps/renderer/tsconfig.node.json
Normal file
11
apps/renderer/tsconfig.node.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"composite": true,
|
||||
"skipLibCheck": true,
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"strict": true
|
||||
},
|
||||
"include": ["farm.config.ts"]
|
||||
}
|
||||
Reference in New Issue
Block a user