// import { base_api } from '~/constants/index' // https://nuxt.com/docs/api/configuration/nuxt-config import postcsspxtoviewport from 'postcss-px-to-viewport' export default defineNuxtConfig({ // devServer: { // port: 6188, // }, devtools: { enabled: process.env.NODE_ENV === 'development', }, debug: process.env.NODE_ENV === 'development', // 开启详细调试日志 ssr: true, modules: ['@unocss/nuxt', '@pinia/nuxt', '@element-plus/nuxt', 'pinia-plugin-persistedstate/nuxt','@vant/nuxt'], unocss: { nuxtLayers: true, }, elementPlus: { importStyle: 'scss', // 或 'css',确保样式被全局导入 themes: ['dark'], // 按需配置主题 }, css: ['element-plus/dist/index.css', '~/assets/scss/app.scss'], vite: { css: { preprocessorOptions: { scss: { additionalData: `@use "~/assets/scss/variables.scss" as *; @use "~/assets/scss/mixins.scss" as *;`, }, }, postcss: { plugins: [ // 将 rpx 单位仅在移动端样式中转换为 px(在 px->vw 之前) { postcssPlugin: 'rpx-to-px-mobile-only', Declaration(decl) { const file = decl.source && decl.source.input && decl.source.input.file if (!file) return const normalized = file.replace(/\\/g, '/'); if (!/\/pages\/mobile\//.test(normalized)) return if (typeof decl.value === 'string' && decl.value.includes('rpx')) { decl.value = decl.value.replace(/(-?\d*\.?\d+)rpx/g, (_, n) => `${n}px`) } }, }, postcsspxtoviewport({ unitToConvert: 'px', viewportWidth: 750, unitPrecision: 6, propList: ['*'], viewportUnit: 'vw', fontViewportUnit: 'vw', selectorBlackList: ['el-'], minPixelValue: 1, mediaQuery: true, replace: true, // 严格只允许 pages/mobile 下的文件被转换 // 使用强排除:排除 node_modules 和 所有不在 pages/mobile 下的文件 exclude: [ /node_modules/, /^(?!.*\/(pages|src)\/mobile\/).*$/ ], landscape: false, // 可选:进一步放宽 include,以便某些移动端专用布局文件也参与 include: [/\/pages\/mobile\//], }), ], }, }, optimizeDeps: { include: ['element-plus','unocss'], // 预构建依赖项 }, // 生产环境构建优化 build: { // 生产环境移除 console 和 debugger minify: 'esbuild', target: 'es2020', }, esbuild: { // 生产环境下移除所有 console 语句和 debugger drop: process.env.NODE_ENV === 'production' ? ['console', 'debugger'] : [], }, }, // 页面过渡配置 app: { // pageTransition: { // name: "page", // mode: "out-in", // duration: 400, // }, // layoutTransition: { // name: "default", // mode: "out-in", // duration: 400, // }, head: { title: '图夕夕-世界图纸 夕夕共享', htmlAttrs: { lang: 'en', }, meta: [ { charset: 'utf-8' }, { name: 'viewport', content: 'width=device-width, initial-scale=1' }, { name: 'description', content: '图夕夕是一家图纸素材分享交易平台,提供AutoCAD/ProE/Creo/CATIA/UG/inventor/CAXA/等建筑图纸的素材下载及免费教程。', }, { name: 'keywords', content: '图纸,图纸下载,设计素材,图纸大全,设计图纸,,工程图纸,cad图纸' }, { name: 'author', content: '图夕夕' }, // SEO meta tags // { // property: 'og:title', // content: '图纸,图纸下载,设计素材,图纸大全,设计图纸,,工程图纸,cad图纸', // }, // { // property: 'og:description', // content: '图夕夕是一家图纸素材分享交易平台,提供AutoCAD/ProE/Creo/CATIA/UG/inventor/CAXA/等建筑图纸的素材下载及免费教程。', // }, // { property: 'og:type', content: 'website' }, // { property: 'og:url', content: 'https://www.xlcig.cn' }, // { property: 'og:site_name', content: 'xlCig' }, // { name: 'theme-color', content: '#00f5ff' }, // // robots meta // { name: 'robots', content: 'index, follow' }, ], link: [ { rel: 'icon', type: 'image/x-icon', href: '/favicon2.ico' }, { rel: 'stylesheet', type: 'text/css', href: 'https://unpkg.com/swiper@8/swiper-bundle.css' }, ], script: [ { type: 'text/javascript', src: 'https://unpkg.com/swiper@8/swiper-bundle.js', }, ], }, }, runtimeConfig: { public: { // API 基础地址 apiBase: 'https://tuxixi.net', // 应用信息 appName: 'xlCig', appVersion: '1.0.0', // 调试模式 debug: process.env.NODE_ENV === 'development', // 环境标识 environment: process.env.NODE_ENV || 'development', }, }, build: { transpile: process.env.NODE_ENV === 'production' ? ['lodash'] : [], }, plugins: [ // 在这里引入插件 { src: '~/plugins/wang-editor', mode: 'client', }, ], piniaPluginPersistedstate: { storage: 'localStorage', }, })