- pnpm
- node
项目内 config 文件夹下定义模块级 config,需要在 config/index.ts 中注册,注册后全局自动拥有配置的定义,通过 config 访问,例如:
新增配置模块 test.config.ts
export default {
foo: {
bar: 'bar'
}
}
在 config/index.ts 中注册后:
import appConfig from './app.config'
import fooConfig from './test.config'
const config = {
app: appConfig,
foo: testConfig
}
window.config = config
export default config
在全局可以像下面这样访问:
// 在普通方法中访问
function xx() {
return config.foo.bar
}
// 在store中访问
const useXXXStore = defineStore({
init: (get, set) => ({
bar: config.foo.bar
})
})
// 在组件里访问
const Home = () => {
const bar = config.foo.bar
}
-
页面统一使用 function 定义,在文件最底部使用
export {}
导出,参考 src/pages/Home/index.tsx -
组件,函数式组件统一使用 箭头函数 定义,定义时需要定义组件依赖的 interface,在文件最底部使用
export {}
导出,参考 src/widgets/LVanAvatar.tsx
服务代理的配置在 vite.config.ts 下:
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import { resolve } from 'path'
import { viteRequire } from 'vite-require'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [react(), viteRequire()],
resolve: {
alias: {
'@assets': resolve(__dirname, 'src/assets'),
'@config': resolve(__dirname, 'src/config'),
'@pages': resolve(__dirname, 'src/pages'),
'@shared': resolve(__dirname, 'src/shared'),
'@widgets': resolve(__dirname, 'src/widgets'),
'@services': resolve(__dirname, 'src/services')
}
},
server: {
// 在这里配置服务代理
proxy: {
// 用户服务代理配置
'/api/v1/user': 'http://localhost:5200',
'/api/v1/account': 'http://localhost:5200',
'/api/v1/storage': 'http://localhost:5200',
// 内容服务代理配置
'/api/v1/avatar': 'http://localhost:3002',
'/api/v1/moment': 'http://localhost:3002',
'/api/v1/propose': 'http://localhost:3002',
'/api/v1/comment': 'http://localhost:3002'
}
}
})
- assets
- 资源文件目录
- config
- 配置文件目录
- pages
- 页面目录
- services
- 接口服务
- shared
- 项目内共享的模块和方法
- widgets
- 项目级组件