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

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日

相关文章

  • Vue3的7种种组件通信详情

    下面将详细讲解Vue3的7种组件通信方式的完整攻略。 1. 父子组件通信 父子组件通信是指从父组件向子组件传递数据或者事件。在Vue3中我们可以使用props属性向子组件传递变量,或使用$emit方法接收子组件的事件通知。 以下是一个简单的示例: <!– 父组件 –> <template> <div> <!– …

    Vue 2023年5月28日
    00
  • vue项目中定义全局变量、函数的几种方法

    在Vue项目中,有时候需要定义全局变量和函数以便在各个组件中使用,以下是几种定义全局变量、函数的方法: 1. 在main.js文件中定义全局变量和函数 在vue-cli创建的项目中,一般会默认生成一个main.js文件,可以在这个文件中定义全局变量和函数。 例如,我们要定义一个全局变量$api,可以在main.js中添加以下代码: import Vue fr…

    Vue 2023年5月27日
    00
  • Vue 理解之白话 getter/setter详解

    Vue 理解之白话 getter/setter详解 什么是getter/setter? 在Vue中实现数据双向绑定的原理是通过getter/setter来实现的。简单来说,getter就是在获取属性值时执行的代码,setter则是在设置属性值时执行的代码。getter和setter通常被称为“计算属性”和“watcher”。 如何定义getter/sette…

    Vue 2023年5月27日
    00
  • 浅谈Vue数据响应

    浅谈Vue数据响应 Vue作为一款现代化的前端框架,在数据响应方面使用了响应式编程的思想,以方便开发者管理数据。在本文中,我们将深入探讨Vue数据响应的相关知识。 什么是Vue数据响应 Vue数据响应是指当Vue的组件状态(data)发生变化时,视图自动更新。Vue通过使用响应式的观察者模式实现数据和UI的双向绑定(Two-Way-Binding),即当数据…

    Vue 2023年5月28日
    00
  • Vue中过滤器定义以及使用方法实例

    下面是关于“Vue中过滤器定义以及使用方法实例”的完整攻略。 什么是Vue中的过滤器? 在Vue中,过滤器是一段可重用的代码片段,它可以在数据绑定及指令中使用。过滤器可以将数据进行格式化,并在页面中进行展示。 过滤器的定义 在Vue实例中定义过滤器的方式有两种,一种是全局定义,另一种是局部定义。 全局定义 全局定义过滤器的代码如下: Vue.filter(‘…

    Vue 2023年5月27日
    00
  • 小程序的基本使用知识点(非常全面,推荐!)

    关于”小程序的基本使用知识点(非常全面,推荐!)”的攻略,下面我会详细讲解。 一、小程序框架 小程序框架是指小程序提供的开发规范,并提供一些组件、API和工具库,用于快速构建小程序应用。以下是小程序框架的主要组成部分: 1. 视图层(View) 视图层采用 WXML(WeiXin Markup Language)语言,用于定义小程序的结构、样式和配置。 WX…

    Vue 2023年5月28日
    00
  • Vue3 组件库的环境配置搭建过程

    当我们想要使用 Vue3 开发组件库时,需要进行环境配置。 环境配置过程 以下是 Vue3 组件库的环境配置的完整攻略。 安装 Vue CLI Vue CLI 是一个工具,用于快速创建 Vue 应用程序。使用它可以很方便地创建一个新的 Vue 组件库项目。我们可以通过 npm 安装 Vue CLI: npm install -g @vue/cli 生成 Vu…

    Vue 2023年5月28日
    00
  • vue 调用 RESTful风格接口操作

    当我们使用 Vue 时,通常需要在前端与服务器端进行数据交互。RESTful 风格接口是一种比较常用的数据交互方式。本文将为您讲解如何在 Vue 中使用 RESTful 风格接口调用操作。 准备工作 在使用 RESTful 风格接口之前,需要安装 axios。axios 是一个优秀的 HTTP 客户端,可以用于发送异步请求并处理响应。可以使用 npm 进行安…

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