Vue Cli项目重构为Vite的方法步骤

yizhihongxing

Vue Cli项目重构为Vite的方法步骤:

  1. 安装Vite

首先,需要通过npm或yarn来全局安装Vite。可以使用以下命令来安装:

npm install -g vite

yarn global add vite
  1. 创建新的Vite项目

使用Vite创建新项目时,可以选择手动创建或使用预设模板。推荐使用预设模板来快速创建新项目。可用的预设模板包括React、Vue和Preact。

使用以下命令来在当前目录下创建一个基于Vue3的Vite项目:

vite create my-vite-project --template vue
  1. 迁移Vue Cli项目的代码和依赖

将Vue Cli项目文件夹中的srcpublicpackage.json文件复制到新创建的Vite项目中。注意将package.json文件中的依赖转移到新项目中。若依赖项在新的Vite项目中有描述,则可以将它们从package.json文件中删除。否则,需要手动添加这些依赖项。

  1. 修改Vite配置文件vite.config.js

Vite使用vite.config.js文件来配置Vite的构建和运行时行为。默认情况下,Vite使用Vue Cli-plugin-vue来处理Vue项目。因此,需要在Vite的配置文件中手动添加一些配置来兼容旧Vue Cli项目。以下是一些推荐的配置和插件:

  • vueTemplates:将.vue文件中的<template>模板编译为render函数
  • vueJsx:支持Vue3的JSX语法
  • alias:配置别名,Vite自身未能处理的Vue Cli别名处理
  • terser:使用Terser来压缩代码,压缩速度较快

以下是一个例子:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      '@': '/src'
    }
  },
  build: {
    terser: {
      compress: {
        drop_console: true,
        drop_debugger: true
      }
    }
  },
  server:{
      port:8090
  },
  optimizeDeps: {
    include: ['@ant-design/icons-vue', 'ant-design-vue/lib/locale-provider/zh_CN', 'ant-design-vue', '@antv/g2', 'xlsx', 'moment', 'js-cookie']
  }
})
  1. 修改Vue Cli项目代码

在新项目的src/main.js文件中用Vite的方式引入Vue组件和样式库的代码需要稍作修改。例如,在Vue Cli项目中可以使用以下代码引入element-ui

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI)

而在Vite项目中,可以使用以下代码引入:

import 'element-plus/lib/theme-chalk/index.css'
import { ElButton } from 'element-plus'
createApp(App).use(ElButton).mount('#app')
  1. 运行新Vite项目

运行Vite项目的命令为:

vite

然后在浏览器中打开http://localhost:3000,即可查看运行效果。

示例1:使用Vite重构Vue Cli项目

在Vue Cli项目中,创建如下Vue组件(位于src/components/HelloWorld.vue文件中):

<template>
  <div class="hello-world">
    <p>{{ message }}</p>
    <button @click="onClick">Click</button>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  props: {
    message: String
  },
  methods: {
    onClick () {
      console.log('Clicked!')
    }
  }
}
</script>

<style scoped>
.hello-world {
  border: 1px solid #ccc;
  padding: 10px;
}
</style>

在Vue Cli项目的src/App.vue文件中,使用<HelloWorld>组件:

<template>
  <div id="app">
    <HelloWorld :message="message" />
  </div>
</template>

<script>
import HelloWorld from './components/HelloWorld.vue'

export default {
  name: 'App',
  components: {
    HelloWorld
  },
  data () {
    return {
      message: 'Hello World!'
    }
  }
}
</script>

需要修改Vite项目的src/App.vue文件,以按照Vite的方式引入组件:

<template>
  <div id="app">
    <ElButton>{{ message }}</ElButton>
  </div>
</template>

<script>
import { defineComponent, ref } from 'vue'
import { ElButton } from 'element-plus'
import 'element-plus/lib/theme-chalk/index.css'

export default defineComponent({
  components: {
    ElButton
  },
  setup () {
    const message = ref('Hello World!')
    return {
      message
    }
  }
})
</script>

示例2:使用Vite重构含TypeScript的Vue Cli项目

在Vue Cli项目中,创建如下带有TypeScript支持的Vue组件(位于src/components/HelloWorld.ts文件中):

<template>
  <div class="hello-world">
    <p>{{ message }}</p>
    <button @click="onClick">Click</button>
  </div>
</template>

<script lang="ts">
import { defineComponent, PropType } from 'vue'

export default defineComponent({
  name: 'HelloWorld',
  props: {
    message: {
      type: String as PropType<string>,
      required: true
    }
  },
  methods: {
    onClick (): void {
      console.log('Clicked!')
    }
  }
})
</script>

<style scoped>
.hello-world {
  border: 1px solid #ccc;
  padding: 10px;
}
</style>

在Vue Cli项目中,创建如下带有TypeScript支持的main.ts文件:

import { createApp } from 'vue'
import App from './App.vue'

createApp(App).mount('#app')

需要修改Vite项目的src/main.ts文件,以按照Vite的方式引入组件:

import { createApp } from 'vue'
import App from './App.vue'
import HelloWorld from '@/components/HelloWorld.vue'

createApp(App).use(HelloWorld).mount('#app')

要注意的问题:

  1. 别名问题:Vite默认情况下只有3个别名:@~vue。如果在Vue Cli中使用了其他别名,则需要在Vite的配置文件vite.config.js中添加别名的配置。

  2. 插件问题:由于Vue Cli和Vite的构建和运行环境不同,一些Vue Cli插件可能无法在Vite中正常工作,需要针对Vite重新寻找对应的插件。

  3. 其他问题:在迁移Vue Cli项目的过程中,还需要根据项目的具体情况进行一些其他的调整,例如处理Vue Cli项目中的路由、状态管理以及代码的编写风格等等。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue Cli项目重构为Vite的方法步骤 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • vue项目中form data形式传参方式

    在 Vue 项目中,直接利用 form 表单的方式进行数据传递是非常常见的。在 Vue 中,我们可以利用 axios 与后端进行通信,并将 form data 格式的数据进行传递。 以下是利用 axios 技术实现的参数传递方式示例: <template> <form @submit.prevent="submitForm&quo…

    Vue 2023年5月28日
    00
  • Vue精简版风格概述

    Vue精简版风格概述 什么是Vue精简版风格? Vue精简版风格是使用Vue框架开发大型Web应用程序的一种设计风格。它强调组件化和功能模块化,以简化应用程序代码的维护和扩展。 Vue精简版风格的设计原则 Vue精简版风格的设计原则包括: 单一职责原则:每个组件只负责一个功能。 组件化:将UI和业务逻辑封装为组件。 功能模块化:将应用程序分解成功能模块,每个…

    Vue 2023年5月27日
    00
  • 一篇Vue、React重点详解大全

    一篇Vue、React重点详解大全 本文旨在给读者一份完整的Vue和React学习指南,包括两个框架的核心概念、使用方法、常见问题等,帮助读者更好地理解和掌握这两个流行的前端框架。 Vue 1. Vue基础概念 Vue是一款渐进式JavaScript框架,它的特点是易用、灵活、高效,适用于开发中小型Web应用。Vue的核心概念包括: 1.1 Vue实例 Vu…

    Vue 2023年5月27日
    00
  • Springboot+Vue-Cropper实现头像剪切上传效果

    下面是“Springboot+Vue-Cropper实现头像剪切上传效果”的完整攻略。 前置知识 在学习本文之前,需要了解以下内容: Spring Boot框架 Vue.js框架 Vue-Cropper组件 环境准备 JDK 1.8 Maven Node.js Vue CLI 前端实现 创建Vue项目 在命令行中执行以下命令: vue create vue-…

    Vue 2023年5月28日
    00
  • 基于Vue实现微信小程序的图文编辑器

    基于Vue实现微信小程序的图文编辑器的攻略具体如下: 1. 实现思路 在实现微信小程序的图文编辑器时,我们可以将整个编辑器分解成多个组件,然后在Vue中进行组合和交互。具体步骤如下: 首先,我们需要设计编辑器的布局和样式。可以使用Flex布局和CSS样式对编辑器中的组件进行布局和样式设置。 其次,我们需要设计可编辑的组件,包括文本、图片、视频等。这些组件需要…

    Vue 2023年5月27日
    00
  • 跨域浏览器设置解决前端跨域问题

    跨域问题是前端开发中常见的问题之一。当我们当前网页的域名与请求的资源的域名不一致时,就会发生跨域问题。例如,我们当前正在访问的是www.abc.com网站,但是网页要请求www.xyz.com网站上的资源,这样就会发生跨域。 为了解决跨域问题,我们可以采用跨域浏览器设置的方法。以下是详细的攻略: JSONP JSONP是一种跨域技术,可以通过在客户端创建一个…

    Vue 2023年5月27日
    00
  • Vue项目中封装axios的方法

    下面我来详细讲解一下“Vue项目中封装axios的方法”的完整攻略。 为什么要封装axios? 首先,我们需要知道为什么要封装axios。axios是一个非常好用的第三方库,但是在很多情况下,我们需要对axios进行一些封装才能更好地满足我们的需求。主要有以下几点原因: 方便统一处理请求异常、错误提示、请求头等 方便设置全局loading效果 方便在请求前和…

    Vue 2023年5月28日
    00
  • Vue的基本知识你都了解吗

    Vue的基本知识攻略 Vue是一个渐进式框架,可以帮助我们轻松构建交互式的Web界面。本攻略将围绕Vue的基本知识进行讲解。 Vue是什么 Vue是一个JavaScript框架,用于构建Web界面。它允许我们将数据绑定到DOM上,并提供了许多轻松处理用户输入、组件化、路由等方面的工具,同时还可以与其他框架(如React和Angular)一起使用。 Vue的核…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部