Files
DianZhanDemo/app/nuxt.config.ts

157 lines
3.7 KiB
TypeScript
Raw Permalink Normal View History

2025-12-11 01:29:41 +08:00
// https://nuxt.com/docs/api/configuration/nuxt-config
import { config } from 'dotenv'
// 加载环境变量
config({ path: '../.env' })
export default defineNuxtConfig({
compatibilityDate: '2025-07-15',
devtools: { enabled: false },
// 开发服务器配置 - 允许外网访问
devServer: {
host: '0.0.0.0', // 改为0.0.0.0以允许外网访问
port: process.env.NUXT_DEV_PORT || 8080,
},
// 禁用默认布局,确保每个页面使用独立布局
app: {
layoutTransition: false,
pageTransition: false,
},
// 启用 SSR 以获得更好的构建结果
ssr: false,
// 路径别名配置 - 使用 pnpm workspace 包引用
alias: {
'@nuxt4crud/shared': '@nuxt4crud/shared',
},
// Vite 配置
vite: {
build: {
rollupOptions: {
output: {
manualChunks: {
'element-plus': ['element-plus'],
'vue-vendor': ['vue'],
},
},
},
// 确保以 ES 模块模式构建
commonjsOptions: {
transformMixedEsModules: true,
},
},
// 解决 CSS 中 import.meta 的问题
css: {
devSourcemap: true,
// 确保 CSS 预处理器正确工作
preprocessorOptions: {
scss: {
api: 'modern-compiler', // 使用现代编译器 API
},
},
},
// 配置 ES 模块处理
esbuild: {
target: 'es2020',
},
optimizeDeps: {
esbuildOptions: {
target: 'es2020',
},
},
},
// 构建优化
build: {
transpile: ['element-plus/es'],
},
modules: [
'@nuxt/eslint',
'@nuxt/image',
'@element-plus/nuxt',
'@nuxtjs/tailwindcss',
'@pinia/nuxt',
],
// Pinia配置
pinia: {
autoImports: [
// 自动导入defineStore和storeToRefs
'defineStore',
'storeToRefs',
],
},
// 指定 TailwindCSS 的全局样式入口文件
tailwindcss: {
cssPath: '~/assets/css/main.css',
},
// PostCSS 配置 - 替代 postcss.config.js
postcss: {
plugins: {
'tailwindcss/nesting': {},
tailwindcss: {},
autoprefixer: {},
},
},
elementPlus: {
/** Options */
// 自动导入样式
importStyle: 'scss',
// 启用组件和指令缓存(仅在开发模式下有效)
cache: true,
// 手动配置需要安装的方法
installMethods: ['ElLoading', 'ElMessage', 'ElMessageBox', 'ElNotification'],
// 全局配置
config: {
size: 'default',
zIndex: 3000,
},
},
// API 代理配置移除Express代理使用Nitro内置API
nitro: {
scanDirs: ['../server/api', '../server/routes'],
srcDir: '../server',
unstorage: {
driver: 'fs',
base: '../.data/db',
},
output: {
serverDir: '.output/server',
},
ignore: ['../scripts/**'],
prerender: {
crawlLinks: false,
routes: [],
},
},
// 运行时配置
runtimeConfig: {
// 私有配置,只在服务端可用
feishuAppId: process.env.FEISHU_APP_ID || 'cli_a62aaf3d9d385013',
feishuAppSecret: process.env.FEISHU_APP_SECRET || 'VH46dJI4T4bbUD7rI9J6Se2EI5rWVpBf',
cozeApiToken:
process.env.COZE_API_TOKEN ||
'pat_7VvJA4an8IbsjmID9SasNBZyVDCJ3NamxwBOBdDxfUQEnGOYGaQf3odBUoibO0aF',
cozeClientId: process.env.COZE_CLIENT_ID || '27608009841040583568491680329534.app.coze',
cozeClientSecret:
process.env.COZE_CLIENT_SECRET || 'Bx7ctHOQlzWVdoaQnSYJgRPwlK64IUuhi4oPnRO3OyJ5K4yc',
// 公共配置,客户端和服务端都可用
public: {
// 更新API基础路径不再指向Express服务器
apiBase: process.env.NUXT_PUBLIC_API_BASE || '',
cozeDefaultWorkflowId: process.env.COZE_DEFAULT_WORKFLOW_ID || '7554970254934605859',
},
},
})