vite vue 单页面优化

本文介绍了如何使用Vite配置开发环境,包括引入插件、处理环境变量、动态创建json文件并记录版本信息。还展示了如何配置服务器代理和处理文件系统操作,如创建public文件夹及写入version.json。
摘要由CSDN通过智能技术生成
import { resolve } from 'path'
import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import svgLoader from 'vite-svg-loader'
import eslint from 'vite-plugin-eslint'
import vueSetupExtend from 'vite-plugin-vue-setup-extend'
import viteCompression from 'vite-plugin-compression';


const fs = require('fs')
const path = require('path')

const config = loadEnv('development', process.cwd())
const baseUrl = config.VITE_APP_BASE_API_PROXY

// console.log('config---',config)

// if(config.VITE_BUILD_ENV==='development' || config.VITE_BUILD_ENV==='release'){
let json_obj = { version_str: new Date().getTime().toString() }
fs.mkdir(path.join(__dirname, '../public/json'), { recursive: true }, err => {
  if (err) {
    return console.error(err)
  }
  console.log('创建public文件夹成功')
  fs.writeFile(path.resolve(__dirname, '../public/json/version.json'), JSON.stringify(json_obj), function (err) {
    if (err) {
      return console.error(err)
    }
    console.log('打包字符串写入文件:static/json/version.json,成功!')
  })
})
// }

export default defineConfig({
  mode: 'development',
  server: {
    open: false,
    port: 9529,
    fs: {
      strict: true
    },
    hmr: true // 开启热更新
    // proxy: {
    //   '/oms': {
    //     target: 'http://localhost:7000', // 代理的线上的接口地址
    //     // 如果要代理 websockets
    //     ws: true,
    //     changeOrigin: true,
    //     rewrite: (path)=>path.replace('/oms/','/')
    //   },
    //   "^/[cmsomsbmswmswms]+/api":{
    //     target: baseUrl,
    //     ws: true,
    //     changeOrigin: true,
    //     // pathRewrite: {   //重写路径,这种是没有我们定义的前缀
    //     //   ['^' + process.env.VUE_APP_BASE_API]: ''
    //     // }
    //   }
    // }
  },
  plugins: [
    vue({
      template: {
        transformAssetUrls: {
          img: ['src', 'public'],
          image: ['src', 'public'],
          'a-image': ['src', 'xlink:href', 'public']
        }
      }
    }),
    vueJsx(),
    svgLoader({ svgoConfig: {} }),
    vueSetupExtend(),
    // 打包压缩,主要是本地gzip,如果服务器配置压缩也可以
    viteCompression(),
  ],
  resolve: {
    alias: [
      {
        find: '@',
        replacement: resolve(__dirname, '../src')
      },
      //   {
      //     find: 'assets',
      //     replacement: resolve(__dirname, '../src/assets')
      //   },
      {
        find: 'vue-i18n',
        replacement: 'vue-i18n/dist/vue-i18n.cjs.js' // Resolve the i18n warning issue
      },
      {
        find: 'vue',
        replacement: 'vue/dist/vue.esm-bundler.js' // compile template
      }
    ],
    extensions: ['.ts', '.js']
  },
  define: {
    'process.env': {}
  },
  build: {
    chunkSizeWarningLimit: 500,
    // minify: 'terser',
    manifest: true,
    cssCodeSplit: false,
    // terserOptions: {
    //   compress: {
    //     // warnings: false,
    //     drop_console: true,  //打包时删除console
    //     drop_debugger: true, //打包时删除 debugger
    //     pure_funcs: ['console.log'],
    //   },
    //   output: {
    //     // 去掉注释内容
    //     comments: true,
    //   },
    // },
    rollupOptions: {
      output: {
        // 入口文件名
        entryFileNames: 'assets/[name]-[hash].js',
        // 块文件名
        chunkFileNames: 'assets/[name]-[hash].js',
        // 资源文件名 css 图片等等
        // -[hash]-balabala
        assetFileNames: 'assets/[name]-[hash].[ext]',
        manualChunks: {
          // 拆分代码,这个就是分包,配置完后自动按需加载
          vue: ['vue', 'vue-router'],
          arcoDesign: ['@arco-design/web-vue'],
          echarts: ['echarts'],
          lodash: ['lodash'],
          vueEcharts: ['vue-echarts']
          // echarts: ['echarts'],
        },
      },
    },
    reportCompressedSize: false, // 启用/禁用 gzip 压缩大小报告
  }

})

Vue3 和 Vite 是构建现代 Web 应用的强大工具组合。 **Vue3**: Vue.js 是一套用于构建用户界面的渐进式框架。Vue 的核心库只关注视图层,并且能够很容易与其他库或已有项目整合。Vue3 特别强调了性能优化、组件化设计以及类型系统的集成能力,使得它在构建复杂应用时非常高效。 Vue3 提供了许多新特性,如自定义指令(Custom Directives)、响应式系统改进等,进一步提高了开发效率和用户体验。在构建日程表应用时,Vue3 可以帮助开发者快速搭建出功能丰富、交互流畅的应用界面。 **Vite**: Vite 是由 Vue 团队推出的一个新的前端构建工具,专为提升开发者的生产力而设计。Vite 提供了极快的开发环境启动速度、高效的热模块替换机制,以及对现代浏览器和 Node.js 兼容性的强大支持。这使得开发者可以在编写代码的同时立即看到结果,极大地提升了迭代速度。 对于日程表应用而言,Vite 的高效率可以显著减少开发过程中的等待时间,提高开发体验。同时,Vite 对 ES 模块的支持使其能直接引入现代 JavaScript 库和框架的最新版本,无需额外转换步骤。 结合 Vue3 和 Vite 构建日程表应用的过程大致包括以下几个步骤: 1. **选择合适的库和技术栈**:根据应用的需求,选择合适的 UI 组件库(例如 Element Plus 或 Ant Design Vue 等),以及数据库解决方案(例如 MySQL、MongoDB 等)。 2. **配置 Vite**:设置 Vite 的基本配置文件 `vite.config.js`,添加必要的插件和支持,比如自动导入样式和脚本、按需加载等,以优化开发流程。 3. **编码日程管理功能**:利用 Vue3 的模板语法和组件化特点,设计并实现日程列表显示、新增、编辑、删除等功能。通过 Vue 的响应式系统处理数据绑定和状态更新,保证页面实时反映用户的操作。 4. **实现日程详情页**:创建独的日程详情组件,展示特定日程的详细信息,允许用户查看、编辑、完成或取消日程。 5. **添加日期筛选和排序功能**:实现基于日期的筛选和排序功能,让用户可以根据需要调整日程列表的显示。 6. **部署应用**:使用 Vite 提供的简部署选项将应用打包并部署到服务器上,确保所有功能都能正常工作。 7. **持续优化**:随着应用的使用反馈,不断收集需求并优化应用性能和用户体验,增加更多实用功能。 **相关问题**: 1. 在使用 Vue3 和 Vite 构建应用程序时如何有效管理状态? 2. 如何利用 Vite 实现更高效的开发环境启动速度? 3. Vue3 中的哪些特性特别适合构建日程管理应用? 请参考上述指南开始您的 Vue3 + Vite 日程表应用开发之旅。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值