利用vite创建vue3项目的全过程及一个小BUG详解

下面我将详细讲解如何利用 Vite 创建 Vue 3 项目的全过程,并对遇到的一个小 BUG 进行详解。

1. 安装 Vite

首先,我们需要全局安装 Vite:

npm install -g vite

2. 创建项目

创建一个基于 Vue 3 的项目可以使用 Vue CLI 4.x 或者使用 Vite + Vue 3。这里我们使用 Vite + Vue 3 的组合来创建我们的 Vue 3 项目。

进入项目所在的路径,使用以下命令快速创建一个 Vue 3 项目:

npm init vite@latest my-vue3-project --template vue

上面的命令中:

  • my-vue3-project:项目名,你可以根据自己的需要来修改;
  • --template vue:使用 Vue 模板来创建项目。

在创建过程中我们可以根据自己的需要来进行选择,这里我选择了默认的配置。

创建完成后,进入项目:

cd my-vue3-project

3. 启动项目

进入项目后,我们可以使用以下命令来启动项目:

npm run dev

这个命令将会启动一个开发服务器,当你修改了代码后,它能够在你保存代码后自动刷新页面。

4. 项目结构

通过以上步骤创建的项目结构应该是这样的:

my-vue3-project/
├─node_modules/
├─public/
│  ├─favicon.ico
│  └─index.html
├─src/
│  ├─App.vue
│  ├─main.js
│  └─index.css
├─.gitignore
├─package.json
├─README.md
└─vite.config.js
  • node_modules/:包含所有使用到的 npm 模块;
  • public/:存放静态文件和 HTML 入口文件;
  • src/:存放源代码;
  • App.vue:Vue 3 的根组件,由 main.js 引入;
  • main.js:Vue 3 的入口文件,创建了 Vue 3 实例并将 App.vue 挂载到 DOM 上;
  • index.css:样式文件;
  • .gitignore:Git 忽略列表;
  • package.json:npm 包管理文件;
  • README.md:项目说明文件;
  • vite.config.js:Vite 的配置文件。

5. BUG 详解

在使用 Vite 创建 Vue 3 项目时,如果你在项目根目录下创建了一个名为 .env 的文件,并在该文件中设置了一些环境变量,那么这些环境变量将无法在项目中被正确获取到。

这是因为 Vite 在默认情况下不支持 .env 文件,如果我们需要使用 .env 文件中的环境变量,需要进行以下配置:

  1. 在项目根目录下创建名为 .env 的文件;
  2. 在该文件中定义环境变量,比如我们定义一个名为 VITE_APP_TITLE 的环境变量:VITE_APP_TITLE=My Vue 3 App
  3. 在 Vite 的配置文件 vite.config.js 中添加以下配置:
export default {
  define: {
    'process.env': {
      VITE_APP_TITLE: process.env.VITE_APP_TITLE
    }
  }
}

上面代码中,我们使用了 Vite 的配置选项 define,将 .env 文件中定义的变量映射到了 process.env 对象上。

接下来,我们就可以在项目代码中通过 process.env.VITE_APP_TITLE 来获取 .env 文件中定义的环境变量了。

示例说明

示例一 - 修改标题

我们可以在 .env 文件中添加一个 VITE_APP_TITLE 变量,然后在 public/index.html 中使用该变量来定义页面的标题:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title>%REPLACE_ME%</title>
    <link rel="icon" href="<%= BASE_URL %>favicon.ico" />
  </head>
  <body>
    <div id="app"></div>
    <!-- built files will be auto injected -->
    <script type="module" src="/src/main.js"></script>
  </body>
</html>

在修改后的 public/index.html 中,我们使用了 %REPLACE_ME% 来代替原来固定的标题,然后在 main.js 中通过 process.env.VITE_APP_TITLE 来获取 .env 文件中定义的变量,然后再将该变量设置为页面的标题:

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

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

document.title = process.env.VITE_APP_TITLE

示例二 - 使用 API

我们可以在 .env 文件中添加一个 VITE_API_URL 变量,然后在项目中使用该变量来获取 API 的地址。

首先,在 .env 文件中定义一个 VITE_API_URL 变量:

VITE_API_URL=https://my-api.com

然后在 src/api.js 文件中定义一个函数来获取 API 的地址:

export const getApiUrl = () => {
  return process.env.VITE_API_URL
}

在项目中,我们可以使用 getApiUrl 函数来获取 API 的地址:

import { getApiUrl } from './api'

console.log(getApiUrl()) // 输出 https://my-api.com

好了,以上就是利用 Vite 创建 Vue 3 项目的全过程及一个小 BUG 的详细攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:利用vite创建vue3项目的全过程及一个小BUG详解 - Python技术站

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

相关文章

  • SpringBoot结合Vue实现投票系统过程详解

    标题:SpringBoot结合Vue实现投票系统过程详解 简介 在这个教程中,我们将介绍如何使用Spring Boot和Vue来构建一个简单的投票系统。我们将使用Spring Boot构建后端API,使用Vue创建UI并前后端相结合。 投票系统架构 我们将采用前后端分离的架构来构建这个投票系统。常见的做法是将前端和后端分别放置在不同的服务器上。在我们的示例中…

    Vue 2023年5月28日
    00
  • 使用Vue开发一个实时性时间转换指令

    下面是使用Vue开发一个实时性时间转换指令的完整攻略: 1. 确定需求和功能 我们的目标是开发一个指令,可以将输入的时间字符串或时间戳转换为实时性时间。具体实现功能如下: 支持将ISO 8601格式的时间字符串(如”2022-02-01T13:01:23Z”)或时间戳(如1643737283)转换为实时性时间; 实时性时间的格式为”X分钟前”、”X小时前”或…

    Vue 2023年5月28日
    00
  • Vue自定义组件的四种方式示例详解

    下面是“Vue自定义组件的四种方式示例详解”的完整攻略。 1. Vue组件的基本概念 作为Vue.js的核心,组件是很重要的概念。Vue.js中组件是可复用的Vue实例,带有一个名字,可以传入不同的属性(props)和方法(methods)和被访问的状态(data)。组件的复用性对于大部分Web应用程序来说都至关重要。组件的定义是Vue实例的一个扩展,其提供…

    Vue 2023年5月27日
    00
  • vue实现pdf导出解决生成canvas模糊等问题(推荐)

    使用Vue实现PDF导出功能需要涉及到以下几个步骤: 安装依赖 npm install jspdf jspdf-autotable –save 引入jspdf和jspdf-autotable包 import jsPDF from ‘jspdf’ import ‘jspdf-autotable’ 编写导出PDF的方法 exportPdf() { // 新建一…

    Vue 2023年5月27日
    00
  • Vue接口封装的完整步骤记录

    以下是Vue接口封装的完整步骤记录的攻略: 1. 确定接口需求 在进行接口封装之前,首先需要明确接口的需求,包括但不限于接口的用途、参数、API文档等。这可以帮助我们更好地理解业务需求,从而设计出更好的API接口。 具体来说,需要确定以下几点: 接口的用途:明确该接口的作用,它是提供了什么功能?这对我们后续的接口设计有很大的帮助。 接口的参数:需要确定接口所…

    Vue 2023年5月27日
    00
  • typescript在vue中的入门案例代码demo

    下面是关于“TypeScript在Vue中的入门案例代码demo”的完整攻略: 什么是TypeScript TypeScript是一个开源的编程语言,它是JavaScript的超集,具有类型和对象导向特性,开发者可以使用它来开发大型的Web应用或Node.js应用。它的语法看起来像JavaScript,但是针对开发体验和代码维护性做了很多改进。 如何在Vue…

    Vue 2023年5月27日
    00
  • vue父组件与子组件之间的数据交互方式详解

    Vue父组件与子组件之间的数据交互方式详解 介绍 Vue是一款流行的前端框架,它提供了一种组件化的开发方式来构建Web应用程序。Vue的组件化开发方式具有很高的灵活性和可重用性,但是在组件化开发中,如何进行组件之间的数据交互是一件非常重要的事情。本文将介绍Vue父组件与子组件之间的数据交互方式。 父组件向子组件传递数据 父组件向子组件传递数据的方式有两种:p…

    Vue 2023年5月28日
    00
  • JS实现焦点图轮播效果的方法详解

    JS实现焦点图轮播效果的方法详解 焦点图(Carousel)是一个在网页中展示图片或其他内容的流行方式,焦点图的特点是在页面的顶部或中央用封面的图片展示网站重点内容,引导用户进入网站的内页。在网页设计中,焦点图常常是网页布局中非常重要的部分,所以实现一个好的焦点图轮播效果至关重要。 在本文中,我将从JavaScript实现焦点图轮播效果的角度,为大家介绍焦点…

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