新手小白:一文带你用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 的开发,也祝你元旦快乐。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

rancher 手册

官方 https://www.rancher.com/https://github.com/rancher/rancherhttps://docs.rke2.io/ rancher kubernetesl yaml deploy rancher serverHelm Deploy Online Rancher DemoHelm & Kubernetes Offline Deploy Rancher v2.7.5 Demohelm upgrade rancher server from v2…

[Linux开发工具]——vim使用

Linux编辑器——vim的使用 一、什么是集成开发环境&#xff1f;二、什么是vim&#xff1f;三、vim的概念四、vim的基本操作五、vim命令模式命令集5.1 移动光标5.2 删除文字5.3 复制粘贴5.4 其他操作 六、vim底行模式命令集6.1 首先在命令模式下shift&#xff1b;进入末行模式。…

uni-app/vue封装etc车牌照输入,获取键盘按键键值

先看下效果如下&#xff1a; 动态图如下 uniapp的keyup获取不到keyCode和compositionstart&#xff0c;compositionend&#xff0c;所以需要监听input节点的keyup事件&#xff0c; 思路以及代码如下&#xff1a; 1.将每一个字符用文本框输入&#xff0c;代码如下 <view …

CEC2017(Python):粒子群优化算法PSO求解CEC2017(提供Python代码)

一、CEC2017简介 参考文献&#xff1a; [1]Awad, N. H., Ali, M. Z., Liang, J. J., Qu, B. Y., & Suganthan, P. N. (2016). “Problem definitions and evaluation criteria for the CEC2017 special session and competition on single objective real-parameter numer…

NullByte

信息收集 # nmap -sn 192.168.1.0/24 -oN live.nmap Starting Nmap 7.94 ( https://nmap.org ) at 2023-12-29 09:23 CST Nmap scan report for 192.168.1.1 Host is up (0.00038s latency). MAC Address: 00:50:56:C0:00:08 (VMware) Nmap scan report for …

PostgreSQL16.1(Windows版本)

1、卸载原有的PostgreSQL &#xfeff; &#xfeff; 点击Next即可。 &#xfeff;&#xfeff; 点击OK即可。 卸载完成。 2、安装 &#xff08;1&#xff09; 前两部直接Next&#xff0c;第二部可以换成自己想要安装的路径。 &#xff08;2&#xff09; 直接点击Next。…

政务大数据能力平台建设方案:文件全文30页,附下载

关键词&#xff1a;智慧政务解决方案&#xff0c;智慧政务建设&#xff0c;智慧政务服务平台&#xff0c;智慧政务大数据&#xff0c;数字政务一体化平台。大数据&#xff0c;政务大数据建设 一、智慧政务建设需求 1、政务服务需求&#xff1a;智慧政务建设需要满足人民群众的…

C++每日一练(8):图像相似度

题目描述 给出两幅相同大小的黑白图像&#xff08;用0-1矩阵&#xff09;表示&#xff0c;求它们的相似度。 说明&#xff1a;若两幅图像在相同位置上的像素点颜色相同&#xff0c;则称它们在该位置具有相同的像素点。两幅图像的相似度定义为相同像素点数占总像素点数的百分比。…

构建基础wlan网络 hcia无线

实验 旁挂组网 二层网络 ac为 dhcp的服务器给ap地址 s1给sta的ip地址 DHCP 业务为直接转发 实验步骤 第一步 poe 开启 poe en 开启 第二步 有线连接 vlan的配置 s1 vlan batch 100 101 连接的端口 port link-type trunk port trunk allow-pass …

pyDAL一个python的ORM(3)建表与表相关操作

1、建表操作define_table() 我们构建2张表&#xff0c;后面示例使用&#xff1a; db.define_table(person,#表名 Field(id, string),#字段名及字段的数据类型 Field(‘name, string), Field(‘dept, string), ) db.define_table(things, Field(id, string), Field(‘nam…

Docker之镜像上传和下载

目录 1.镜像上传 1) 先上百度搜索阿里云 点击以下图片网站 2) 进行登录/注册 3) 使用支付宝...登录 4) 登录后会跳转到首页->点击控制台 5) 点击左上角的三横杠 6) 搜索容器镜像关键词->点击箭头所指 ​ 编辑 7) 进入之后点击实例列表 8) 点击个人实例进入我们的一个…

win/linux 环境查看动态库包含的函数

我们打包了动态库&#xff0c;还要查看是否包含一些函数&#xff0c;需要导出这些函数 在win 环境下可以使用 .def 格式的文件进行操作 ######################################################### 跳过这一步&#xff0c;回到主题&#xff0c;在两个系统平台如何查看动态库包…

轻量封装WebGPU渲染系统示例<55>- 顶点数据更新

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/material/src/voxgpu/sample/VertexUpdateTest.ts 当前示例运行效果: ​​​​​​​ 此示例基于此渲染系统实现&#xff0c;当前示例TypeScript源码如下: export class VertexUpdateTest {pr…

2023年成都市中等职业学校学生技能大赛“网络搭建及应用”赛项竞赛样卷

2023年成都市中等职业学校学生技能大赛 “网络搭建及应用”赛项竞赛样卷 &#xff08;总分1000分&#xff09; 目录 2023年成都市中等职业学校学生技能大赛 “网络搭建及应用”赛项竞赛样卷 网络建设与调试项目&#xff08;500分&#xff09; 服务器搭建与运维项目&#xff08;…

【PXIE301-208】基于PXIE总线架构的Serial RapidIO总线通讯协议仿真卡

板卡概述 PXIE301-208是一款基于3U PXIE总线架构的Serial RapidIO总线通讯协议仿真卡。该板卡采用Xilinx的高性能Kintex系列FPGA作为主处理器&#xff0c;实现各个接口之间的数据互联、处理以及实时信号处理。板卡支持4路SFP光纤接口&#xff0c;支持一个PCIe x8主机接口&…

Ubuntu中fdisk磁盘分区并挂载、扩容逻辑卷

Ubuntu中fdisk磁盘分区并挂载、扩容逻辑卷 一&#xff1a;fdisk磁盘分区并挂载1.查看磁盘分区信息2.分区3.强制系统重新读取分区(避免重启系统)4.格式化分区5.创建挂载目录6.设置开机自动挂载&#xff1a;7.验证并自动挂载(执行了该命令不需要重启系统)8.查看挂载007.异常情况处…

[DL]深度学习_AlexNet

AlexNet网络详解 目录 一、AlexNet 1、详细介绍 2、网络框架 二、网络详解 1、首次使用ReLu激活函数 2、模型基本结构与双GPU实现 3、局部响应归一化(LRN) 4、重叠池化(Overlapping Pooling) 5、数据增强 6、Dropout 一、AlexNet 1、详细介绍 AlexNet是一种经典的卷积…

【深入浅出RocketMQ原理及实战】「云原生升级系列」打造新一代云原生“消息、事件、流“统一消息引擎的融合处理平台

打造新一代云原生"消息、事件、流"统一消息引擎的融合处理平台 云原生架构RocketMQ的云原生架构实现RocketMQ的云原生发展历程互联网时期的诞生无法支持云原生的能力 云原生阶段的升级云原生升级方向促进了Mesh以及多语言化发展可分合化的存算分离架构存储分离架构的…

RabbitMQ核心概念记录

本文来记录下RabbitMQ核心概念 文章目录 什么叫消息队列为何用消息队列RabbitMQ简介RabbitMQ基本概念RabbitMQ 特点具体特点包括 Rabbitmq的工作过程RabbitMQ集群RabbitMQ 的集群节点包括Rabbit 模式大概分为以下三种单一模式普通模式镜像模式 本文小结 什么叫消息队列 消息&am…

前后端分离架构的特点以及优缺点

文章目录 一、前后端不分离架构(传统单体结构)1.1 什么是前后端不分离1.2 工作原理1.3 前后端不分离的优缺点1.4 应用场景 二、前后端分离架构2.1 为什么要前后端分离2.2 什么是前后端分离2.3 工作原理2.4 前后端分离的优缺点 参考资料 一、前后端不分离架构(传统单体结构) 首…