This commit is contained in:
abearxiong 2025-04-28 13:12:29 +08:00
parent 10787fea6b
commit 55c97ad564
6 changed files with 710 additions and 443 deletions

14
.cnb.yml Normal file
View File

@ -0,0 +1,14 @@
# .cnb.yml
$:
vscode:
- docker:
image: docker.cnb.cool/kevisual/dev-env:latest
env:
CNB_WELCOME_EXECUTE_COMMAND: echo "Welcome to CNB!"
services:
- vscode
- docker
# 开发环境启动后会执行的任务
stages:
- name: ls
script: ls -al

7
.env.development Normal file
View File

@ -0,0 +1,7 @@
## 本地环境
# VITE_API_URL = "http://localhost:8000"
### 开发环境
VITE_API_URL = "https://kevisual.xiongxiao.me"
### 生产环境
# VITE_API_URL = "https://kevisual.cn"

View File

@ -23,18 +23,18 @@
"dependencies": { "dependencies": {
"@emotion/react": "^11.14.0", "@emotion/react": "^11.14.0",
"@emotion/styled": "^11.14.0", "@emotion/styled": "^11.14.0",
"@kevisual/router": "0.0.10", "@kevisual/router": "0.0.13",
"@mui/material": "^7.0.1", "@mui/material": "^7.0.2",
"clsx": "^2.1.1", "clsx": "^2.1.1",
"dayjs": "^1.11.13", "dayjs": "^1.11.13",
"lodash-es": "^4.17.21", "lodash-es": "^4.17.21",
"lucide-react": "^0.487.0", "lucide-react": "^0.503.0",
"nanoid": "^5.1.5", "nanoid": "^5.1.5",
"react": "^19.1.0", "react": "^19.1.0",
"react-dom": "^19.1.0", "react-dom": "^19.1.0",
"react-hook-form": "^7.55.0", "react-hook-form": "^7.56.1",
"react-router": "^7.5.0", "react-router": "^7.5.2",
"react-router-dom": "^7.5.0", "react-router-dom": "^7.5.2",
"react-toastify": "^11.0.5", "react-toastify": "^11.0.5",
"zustand": "^5.0.3" "zustand": "^5.0.3"
}, },
@ -44,18 +44,19 @@
"devDependencies": { "devDependencies": {
"@kevisual/components": "workspace:*", "@kevisual/components": "workspace:*",
"@kevisual/query": "0.0.17", "@kevisual/query": "0.0.17",
"@kevisual/types": "^0.0.6", "@kevisual/types": "^0.0.7",
"@tailwindcss/vite": "^4.1.3", "@tailwindcss/vite": "^4.1.4",
"@types/node": "^22.14.0", "@types/node": "^22.15.2",
"@types/react": "^19.1.0", "@types/react": "^19.1.2",
"@types/react-dom": "^19.1.1", "@types/react-dom": "^19.1.2",
"@vitejs/plugin-basic-ssl": "^2.0.0", "@vitejs/plugin-basic-ssl": "^2.0.0",
"@vitejs/plugin-react": "^4.3.4", "@vitejs/plugin-react": "^4.4.1",
"commander": "^13.1.0", "commander": "^13.1.0",
"dotenv": "^16.5.0",
"inquire": "^0.4.8", "inquire": "^0.4.8",
"tailwindcss": "^4.1.3", "tailwindcss": "^4.1.4",
"typescript": "^5.8.3", "typescript": "^5.8.3",
"vite": "^6.2.5" "vite": "^6.3.3"
}, },
"packageManager": "pnpm@10.7.1" "packageManager": "pnpm@10.10.0"
} }

977
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

16
src/vite-env.d.ts vendored
View File

@ -3,4 +3,18 @@ type SimpleObject = {
[key: string | number]: any; [key: string | number]: any;
}; };
declare let BASE_NAME: string; declare let BASE_NAME: string;
interface ViteTypeOptions {
// 添加这行代码,你就可以将 ImportMetaEnv 的类型设为严格模式,
// 这样就不允许有未知的键值了。
// strictImportMetaEnv: unknown
}
interface ImportMetaEnv {
readonly VITE_APP_TITLE: string;
// 更多环境变量...
}
interface ImportMeta {
readonly env: ImportMetaEnv;
}

View File

@ -1,45 +1,28 @@
import { defineConfig } from 'vite'; import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react'; import react from '@vitejs/plugin-react';
import path from 'path'; import path from 'path';
import pkgs from './package.json' with { type: 'json' }; import pkgs from './package.json';
import tailwindcss from '@tailwindcss/vite';
import basicSsl from '@vitejs/plugin-basic-ssl';
import dotenv from 'dotenv';
const version = pkgs.version || '0.0.1'; const version = pkgs.version || '0.0.1';
const isDev = process.env.NODE_ENV === 'development'; const isDev = process.env.NODE_ENV === 'development';
const basename = isDev ? '/' : pkgs?.basename || '/'; const basename = isDev ? '/' : pkgs?.basename || '/';
const plugins = [react(), tailwindcss(), basicSsl()];
const checkJsh = () => { dotenv.config({ path: '.env.development' });
return process.env.SHELL === '/bin/jsh'; let target = process.env.VITE_API_URL || 'http://localhost:3000';
};
const isJsh = checkJsh();
const plugins = [react(), ];
if (!isJsh) {
const basicSsl = await import('@vitejs/plugin-basic-ssl');
const tailwindcss = await import('@tailwindcss/vite');
const defaultPlugin = basicSsl.default;
const defaultCssPlugin = tailwindcss.default;
plugins.push(defaultCssPlugin(),defaultPlugin());
}
let target = 'https://kevisual.xiongxiao.me';
if (isDev) {
target = 'https://kevisual.xiongxiao.me';
} else {
target = 'https://kevisual.cn';
}
let proxy = { let proxy = {
'/root/center/': { '/root/center/': {
target: `https://${target}/root/center/`, target: `${target}/root/center/`,
}, },
'/root/system-lib/': { '/root/system-lib/': {
target: `https://${target}/root/system-lib/`, target: `${target}/root/system-lib/`,
}, },
'/user/login/': { '/user/login/': {
target: `https://${target}/user/login/`, target: `${target}/user/login/`,
}, },
'/api': { '/api': {
target: `https://${target}`, target: target,
changeOrigin: true, changeOrigin: true,
ws: true, ws: true,
rewriteWsOrigin: true, rewriteWsOrigin: true,
@ -49,47 +32,34 @@ let proxy = {
/** /**
* @see https://vitejs.dev/config/ * @see https://vitejs.dev/config/
*/ */
export default defineConfig({ export default defineConfig(() => {
plugins, return {
resolve: { plugins,
alias: { resolve: {
'@': path.resolve(__dirname, './src') alias: {
}, '@': path.resolve(__dirname, './src'),
},
base: basename,
define: {
DEV_SERVER: JSON.stringify(process.env.NODE_ENV === 'development'),
APP_VERSION: JSON.stringify(version),
BASE_NAME: JSON.stringify(basename),
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
},
build: {
target: 'modules',
// lib: {
// entry: './src/libs.ts',
// formats: ['es'],
// fileName: (format) => `render.js`,
// },
},
server: {
port: 7008,
host: '0.0.0.0',
proxy: {
'/api': {
target: 'http://localhost:3000',
changeOrigin: true,
ws: true,
rewriteWsOrigin: true,
rewrite: (path) => path.replace(/^\/api/, '/api'),
}, },
'/api/router': {
target: 'ws://localhost:3000',
changeOrigin: true,
ws: true,
rewriteWsOrigin: true,
rewrite: (path) => path.replace(/^\/api/, '/api'),
},
...proxy,
}, },
}, base: basename,
envPrefix: 'KEVISUAL_',
define: {
DEV_SERVER: JSON.stringify(process.env.NODE_ENV === 'development'),
APP_VERSION: JSON.stringify(version),
BASE_NAME: JSON.stringify(basename),
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
},
build: {
target: 'modules',
// lib: {
// entry: './src/libs.ts',
// formats: ['es'],
// fileName: (format) => `render.js`,
// },
},
server: {
port: 7008,
host: '0.0.0.0',
proxy,
},
};
}); });