新手小白:一文带你用vite从零搭建企业级开发环境

    在这工作的半年时间里,开始接触了前端开发,技术栈主要用的是 vue2,但是自己利用时间也学习了 vue3,组合式 api 和 vue3 的各种生态比 vue2 好用太多了,特别是状态管理库 pinia 比 vuex 简介很多,构建工具也从 vue-cli 变成了 vite。这篇文章就带大家从零搭建一套企业级的开发环境。

一:安装 node.js 环境

    首先要确保自己已经安装了 node.js 的开发环境,如果没有安装的可以直接到官网下载,可以选择最新的 LTS 版本(现在是 20.10.0),安装过程也很简单,无脑点 next 就可以了。当然也可以选择之前的版本,但是要注意的是 node 版本需要选择 18 以上的。

node.js 官网
https://nodejs.org/en/download/

二:安装 pnpm 包管理工具

    node.js 安装的同时,也会帮我们自动安装 npm,官方的包管理工具。但是我会比较喜欢使用 pnpm,这个工具的优势是比其他的同类工具速度要快 2 倍左右、同时也能节省更多的磁盘空间。当然你也可以选择用 npm。

# pnpm 安装方式
npm install -g pnpm

也给大家介绍一下这两个工具的常用命令

npmpnpm
安装依赖npm install axiospnpm add axios
卸载依赖npm uninstall axiospnpm remove axios
安装开发环境的依赖npm install axios -Dpnpm add axios -D
启动项目npm run servepnpm dev
三:创建项目

    配置好环境后就可以打开终端在命令行里输入 pnpm create vue 创建一个 vue3 项目了。接下来只需要输入自己的项目名称,以及配置一些选项,目前来说大部分项目只需要用到图下这些就可以了。当然你也可以按照自己的需求去选择。

    按照提示启动项目,在浏览器中输入访问链接,就代表启动成功了

用 vscode 将项目打开之后,可以安装下这两款插件。

四:使用 ESLint 和 Prettier 配置代码风格

可能很多对这两个的作用不是很清楚:

  • eslint 主要是用来检测我们的代码质量,当我们的代码没有按照一定的规范去写的时候,会提示报错。
  • prettier 则是用来格式化我们的代码,使我们的代码的结构看起来更加美观,具备更高的可读性。

在上一步我们已经安装了 eslint 插件,接下来需要打开 vscode 的配置文件 settings.json,并进行如下配置

"editor.codeActionsOnSave": {
    "source.fixAll": true
},
"editor.formatOnSave": false,

接下来需要在我们的项目文件 .eslintrc.cjs 中进行 prettier 风格的配置

rules: {
  'prettier/prettier': [
      'warn',
      {
        singleQuote: true, // 单引号
        semi: false, // 无分号
        printWidth: 120, // 每行宽度至多120字符
        trailingComma: 'none', // 不加对象|数组最后逗号
        endOfLine: 'auto' // 换行符号不限制
      }
    ],
    'vue/multi-word-component-names': [
      'warn',
      {
        ignores: ['index'] // vue组件名称多单词组成(忽略index.vue)
      }
    ],
    'vue/no-setup-props-destructure': ['off'], // 关闭 props 解构的校验
    // 💡 添加未定义变量错误提示
    'no-undef': 'error'
  },

完成这一步就可以让项目按照我们配置的规则生效了,使得 eslint 实现可以在我们编写代码的时候进行错误提示,在保存代码的时候,自动进行错误修复。

比如说下图我们在 = 的前面少了一个空格,会提示我们这里不规范,按 ctrl+s 就会自动帮我们自动格式化。

而且还可以按照你的需求配置代码风格规范。

更多细节可以查看官网:https://prettier.io/docs/en/options.html

五:调整项目结构

官方构建的项目结构如下图所示,这个结构是无法满足我们的开发需求的,所以需要对项目的结构进行一定的调整。

首先对于无用的文件可以先删除:像 assets 目录下的静态文件,components 和 views 目录下的组件,这些都是可以直接删掉的,同时对于 App.vue 文件,里面的大部分内容也都是可以先删除的,可以先保留如下内容:

<script setup></script>

<template>
  <RouterView />
</template>

<style scoped></style>

其实在 src 目录下需要新建两个新的文件夹 api 和 utils,分别用来存放我们的请求 api 和一些工具封装。

对于 main.js 文件中的内容(下图),可以看到 pinia 的创建和注册其实都是耦合在这个文件里的,我们可以将 pinia 的创建抽取出来,这个 main.js 文件只负责其他模块的注册。

可以在 store 文件下创建一个新的文件夹 modules,里面用来存放我们的每一个状态管理模块。同时创建 index.js 文件作为模块的出口。

修改后的文件内容如下:

main.js

import { createApp } from 'vue'

import App from './App.vue'
import router from './router'
import pinia from './stores'
const app = createApp(App)

app.use(pinia)
app.use(router)

app.mount('#app')

stores/index.js

import { createPinia } from 'pinia'
const pinia = createPinia()
export default pinia

至此,我们一个完整的项目结构已经搭建完成了,大家可以跟着文章的步骤进行尝试,希望你能享受 vue3 的开发,也祝你元旦快乐。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/283427.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uni-app 前后端调用实例 基于Springboot 下拉刷新实现

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…

要学习openfoam,c++需要掌握到什么程度?

要学习openfoam&#xff0c;c需要掌握到什么程度&#xff1f; 在开始前我有一些资料&#xff0c;是我根据自己从业十年经验&#xff0c;熬夜搞了几个通宵&#xff0c;精心整理了一份「c的资料从专业入门到高级教程工具包」&#xff0c;点个关注&#xff0c;全部无偿共享给大家&…

C#编程-编写和执行C#程序2

C#编程-编写和执行C#程序 问题陈述 Dvid所在的团队正在为网球比赛开发自动排名软件。他负责创建一个程序来接受网球选手的以下详细信息并将其显示在屏幕上: 1.姓名 2.排名 您需要帮助David创建该程序。 要创建所需的程序,David需要执行以下步骤: 1.打开“记事本”。 2.在“…

解决[ Ubuntu ]E: Unable to locate package clang-14

背景 在有的时候我们的ubuntu系统需要安装高版本的clang&#xff0c;例如clang-14&#xff0c;但apt无法安装。 解决办法 &#xff08;一&#xff09;国内推荐解决办法&#xff1a;配置清华源 llvm-apt | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source …

自定义事件

自定义事件 自定义事件 AAA"fn1"&#xff1a;向子组件的事件池中注入AAA事件&#xff0c;方法是父组件的fn1 发布订阅&#xff1a;子组件某个操作把父组件中的某个方法执行了 参数可以传多个 $listeners* $listeners&#xff1a;事件池中的方法 { aaa:fn1, bbb:fn2 }…

基于PHP的校园代购商城系统

有需要请加文章底部Q哦 可远程调试 基于PHP的校园代购商城系统 一 介绍 此校园代购商城系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。(附带参考设计文档) 技术栈&#xff1a;phpmysqlbootstrapphpstudyvscode 二 功能 …

公共数据库SEER文章复现:生存时间资料的倾向性得分匹配,全流程搞定

倾向得分匹配法是通过对样本建模&#xff08;logit模型&#xff09;得到倾向性得分&#xff0c;通过倾向性得分为试验组在对照组中找到最接近的样本&#xff0c;从而进行研究的。 倾向得分匹配在真实世界临床研究用途越来越广泛&#xff0c;它是一种事后推动组间比较均衡化的方…

ArkTS - @Builder自定义构建函数

这个Builder作用就是可以把组件样式抽离出来&#xff0c;写成公共组件&#xff0c;下边记录下全局自定义构建函数用法及注意的地方。 官方文档&#xff1a;开发者可以将重复使用的UI元素抽象成一个方法&#xff0c;在build方法里调用。 一、用法 下边代码&#xff0c;我在Co…

【C++】类与对象

文章目录 1. 面向过程和面向对象的初步认识2. 类的引入3. 类的定义4. 类的访问限定符及封装4.1 访问限定符4.2 封装 5. 类的作用域6. 类的实例化7. 类对象模型7.1 如何计算类对象的大小7.2 类对象的存储方式猜测7.3 结构体内存对齐规则 8. this指针8.1 this指针的引出8.2 this指…

springboot实现用户操作日志记录

springboot实现用户操作日志记录 简介&#xff1a;之前写了《aop实现日志持久化记录》一文&#xff0c;主要介绍自定义aop标注方法上&#xff0c;通过切面方法对用户操作插入mysql。思路正确但是实际操作上存在一些小问题&#xff0c;本文将从项目出发&#xff0c;对细节进行补…

1、安装与配置

1、安装与配置 Redis 是完全开源的&#xff0c;遵守 BSD 协议&#xff0c;一款NoSql数据库&#xff08;非关系型数据库&#xff09;&#xff0c;高性能的key-value 数据库。 有以下三个特点&#xff1a; 1、Redis支持数据的持久化&#xff0c;可以将内存中的数据保存在磁盘中…

【AIGC-图片生成视频系列-4】DreamTuner:单张图像足以进行主题驱动生成

目录 一. 项目概述 问题&#xff1a; 解决&#xff1a; 二. 方法详解 a) 整体结构 b) 自主题注意力 三. 文本控制的动漫角色驱动图像生成的结果 四. 文本控制的自然图像驱动图像生成的结果 五. 姿势控制角色驱动图像生成的结果 2023年的最后一天&#xff0c;发个文记录…

使用keepalived时虚拟IP漂移注意事项

什么是Keepalived服务 keepalived是一个开源的软件项目&#xff0c;用于实现高可用性&#xff08;HA&#xff09;的网络服务器负载均衡和故障转移。它允许将多台服务器组合在一起&#xff0c;形成一个虚拟服务器集群&#xff0c;实现负载均衡和故障转移。 keepalived的核心功…

Conv2Former:一种transformer风格的卷积特征提取方式

一、前言 昨天读到了一篇有意思的文章&#xff0c;文章提出通过利用卷积调制操作来简化self-attention。还证明了这种简单的方法可以更好地利用卷积层中嵌套的大核(≥7 7)。我们都知道ViTs推动了设计识别模型的发展&#xff0c;近几年使用的也相当的多&#xff0c;通常就是CN…

C/C++面向对象(OOP)编程-回调函数详解(回调函数、C/C++异步回调、函数指针)

本文主要介绍回调函数的使用&#xff0c;包括函数指针、异步回调编程、主要通过详细的例子来指导在异步编程和事件编程中如何使用回调函数来实现。 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;C/C精进之路 &…

ROS学习记录:使用RViz观测激光雷达传感器数据

一、使用CtrlAltT打开终端 二、输入 cd ~/catkin_ws1/ 进入工作空间 三、输入source ./devel/setup.bash 四、输入&#xff1a; roslaunch wpr_simulation wpb_simple.launch 打开机器人仿真环境 五、这是机器人仿真环境&#xff0c;里面机器人和书柜 六、再开一个终端&#…

开始使用MEVN技术栈开发01 概述

开始使用MEVN技术栈开发01 概述 简介 Welcome to Beginning MEVN Stack! This book focuses on the key tasks and concepts to get you started to learn and build MEVN stack applications in a faster pace. 欢迎阅读《MEVN堆栈入门》&#xff01;本书重点介绍关键任务…

echarts 二分图布局_力向导图_关系图

Echarts 常用各类图表模板配置 注意&#xff1a; 这里主要就是基于各类图表&#xff0c;更多的使用 Echarts 的各类配置项&#xff1b; 以下代码都可以复制到 Echarts 官网&#xff0c;直接预览&#xff1b; 图标模板目录 Echarts 常用各类图表模板配置一、力向导图(二分图布局…

【力扣题解】P98-验证二叉搜索树-Java题解

&#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【力扣题解】 文章目录 【力扣题解】P98-验证二叉搜索树-Java题解&#x1f30f;题目描述&#x1f4a1;题解&#x1f30f;总…

分割数组的最大差值 - 华为OD统一考试

分割数组的最大差值 - 华为OD统一考试 OD统一考试 分值&#xff1a; 100分 题解&#xff1a; Java / Python / C 题目描述 给定一个由若干整数组成的数组nums &#xff0c;可以在数组内的任意位置进行分割&#xff0c;将该数组分割成两个非空子数组(即左数组和右数组)&#xf…