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日

相关文章

  • vue使用Vue.extend方法仿写个loading加载中效果实例

    下面是详细讲解“vue使用Vue.extend方法仿写个loading加载中效果实例”的完整攻略: 1. Vue.extend方法简介 Vue.extend是Vue.js中一个全局API,它接受一个参数对象并返回一个新的组件构造函数,这个构造函数可以被像任何其它组件一样被实例化。 其主要作用是定义可复用的组件模板,这些模板可以在后面使用到。 2. 实现过程 …

    Vue 2023年5月29日
    00
  • 使用Vite+Vue3+Vant全家桶快速构建项目步骤详解

    下面是使用Vite+Vue3+Vant全家桶快速构建项目步骤详解的完整攻略。 准备工作 安装Node.js:https://nodejs.org/en/download/,推荐使用Node.js 12以上版本。 安装Vue CLI:打开命令行工具,执行npm install -g @vue/cli。 创建一个空白的Vue项目:打开命令行工具,执行vue cr…

    Vue 2023年5月28日
    00
  • Vue唯一可以更改vuex实例中state数据状态的属性对象Mutation的讲解

    Vue是一种流行的JavaScript框架,用于构建大型Web应用程序。Vue官方推荐使用Vuex来管理应用程序中的状态。Vuex是一个专为Vue.js应用程序开发的状态管理模式,它采用集中式存储管理应用的所有组件的状态,并以清晰的规则保证状态只能通过mutations更改,由于这一特性,Mutation成为了Vue唯一可以更改vuex实例中state数据状…

    Vue 2023年5月28日
    00
  • Springboot Vue可配置调度任务实现示例详解

    下面我将为您详细讲解“Springboot Vue可配置调度任务实现示例详解”的完整攻略。 简介 本攻略将介绍如何使用Springboot和Vue实现可配置调度任务,主要涵盖以下内容: 何为可配置调度任务 实现可配置调度任务的技术选型 实现步骤和示例说明 什么是可配置调度任务 可配置调度任务是指可以根据用户需求动态添加、修改、删除的定时任务,而不需要每次都手…

    Vue 2023年5月28日
    00
  • 详解如何在Vue中动态添加类名

    关于在Vue中动态添加类名的攻略,以下是一个完整的流程: 步骤一:使用v-bind绑定class 在Vue中,我们通常使用v-bind指令(简写为“:”)来绑定class的名称和值。 例如,如果你想动态地把一个红色div添加到你的网页上,你可以这样做: <template> <div :class="{ ‘red’: isRed …

    Vue 2023年5月27日
    00
  • 详解vue 组件

    下面是一份详解Vue组件的攻略: 详解Vue 组件 什么是Vue组件? Vue组件是一个封装了HTML、CSS、JS代码的独立模块,可以被重复使用,一个页面通常由多个组件构成,每个组件对应一个独立区域的功能和样式。 Vue组件的优势有很多,例如减少了代码冗余、提高了程序的易读性和可维护性、增强了组件的复用性等。 如何创建一个Vue组件? 创建Vue组件主要有…

    Vue 2023年5月27日
    00
  • vue中对虚拟dom的理解知识点总结

    下面是关于“Vue中对虚拟DOM的理解知识点总结”的详细攻略。 什么是虚拟DOM 虚拟DOM是JavaScript对象,它是由Vue框架所提供的一种机制,可以在浏览器的内存中构建一个虚拟的DOM树,通过Diff算法找出需要更新的地方,再将这些更新应用到真正的DOM上,从而最大限度地减少Dom操作对性能的影响。 虚拟DOM相当于是对真实DOM的一层抽象,它可以…

    Vue 2023年5月28日
    00
  • 详解VUE 数组更新

    关于”详解VUE 数组更新”的完整攻略,可以按照以下步骤进行讲解: 1. 首先明确要解决的问题 在 Vue.js 中,当一个数组被直接赋值给一个新变量时,原数组和新变量将引用同一个数组对象。此时,当对其中一个变量进行修改的时候,另一个变量的值也会被同时修改,这样就会影响到 Vue 的响应式更新机制。 例如,下面的代码只是将数组 a 赋值给了变量 b,但在修改…

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