搭建规范化的vue2项目

项目包含的库

Vue2+Vuex+Router+Eslint+Prettier

环境

vue:2.6.14

eslint:7.32.0

prettier:2.4.1

eslint-plugin-prettier:4.0.0

eslint-plugin-vue:8.0.3

@vue/cli:5.0.8

步骤

  1. 全局安装cli工具

    npm install -g @vue/cli
    
  2. 运行创建项目命令

    vue ui
    

    运行 vue create xxx 也可以,这种是在命令行中选择配置项,上面那个是在网页中点击选择

    之前创建过项目的一般默认会进入之前的项目仪表盘,点击项目名下拉框-选择Vue 项目管理器-创建(或者在页面左下角有个小的房子icon-创建)

    建议在想要创建项目的目录下运行上面命令,这样(之前没使用过cli创建项目)默认会是当前的目录

    尽量不要切换盘符或者进入很多目录的路径,会出现进入失败情况

  3. 选择配置项

    选择好目录之后,点击下方的在此创建新项目

    详情

    • 填写项目名,例如:vue-standard

    • 包管理器选择,例如:npm(按照自己习惯选择)

    • 若目标文件夹已存在则将其覆盖 ,不建议打开,容易出现问题

    • 无新手指引的脚手架项目 ,随意配置

    • 初始化 git 仓库 (建议) ,一般是打开的(因为项目管理基本都是使用git的,会进行git初始化)

      • 提交信息,进行提交信息的覆盖,可以根据团队提交信息规范填写,没有规范就按照自己习惯填写,例如:chore: init
    • 点击下一步

    预设

    • 一般选择手动,自己进行个性化配置设置
    • 点击下一步

    功能

    • Babel,这个基本不存在不选择的情况
    • TypeScript,建议vue3项目选择(不熟悉也可以不选择),vue2项目一般不选择(对TS支持不够好)
    • Progressive Web App (PWA) Support,使用web平台技术构建的应用程序,一般是不选择的
    • Router,一般情况下选择,如果不使用路由的可以不选择
    • Vuex,根据项目需求选择,需要共享状态的项目会选择
    • CSS Pre-processors,一般情况下选择,想要使用Sass、Less、Stylus,一定要选择
    • Linter / Formatter,代码校验格式化配置,本案例就是要搭建规范化项目,所以这个一定是勾选的,一般情况下也是建议选择的
    • Unit Testing,这个根据需要,敏捷开发一般是不选择的,想要项目健壮并且有时间编写单元测试的可以选择
    • E2E Testing,这个也是用来测试,敏捷开发一般是不选择的,想要项目健壮并且有时间编写测试代码的可以选择
    • 使用配置文件,一般是选择的,不然所有配置会放到package.json里面
    • 点击下一步

    案例选择

    在这里插入图片描述

    配置

    • Choose a version of Vue.js that you want to start the project with,选择vue版本,本案例选择的2.X,这个根据团队或个人技术栈来选择
    • Use history mode for router?,这个根据喜好和需求进行选择,路由是否带有#
    • Pick a CSS pre-processor:,这个根据UI库和个人喜好选择,一般选择UI库使用的,ElementUI使用Sass,例如:Sass/SCSS (with dart-sass)
    • Pick a linter / formatter config:,建议选择ESLint + Prettier,也可以根据喜好选择其他的规范,不想要复杂校验也可以选择ESLint with error prevention only
    • Pick additional lint features:
      • Lint on save,一般是选择的(规范化项目),保存时进行校验
      • Lint and fix on commit,这个根据需要选择,git提交代码时校验,打开后格式有问题时无法提交代码
      • 点击创建项目
    • 预设名,有预设下次同样配置可以直接选择预设
  4. 完成创建

    • 按照上面步骤操作之后,只需要等待项目创建完成即可,建议不在页面中进行依赖插件添加,防止使用时出现编写错误(如果你非常熟练可以忽略此建议),找到依赖官网按照步骤操作能减少错误
    • 完成创建之后进入项目仪表盘,配置菜单中会有vue和eslint的相关配值页面,可以进行个性化修改(本案例未做修改)
  5. 完善配置

    • 修改 .eslintrc.js配置文件,完善规则使用自己或团队习惯的规则

    • 增加 .prettierrc.js配置文件,修改prettier相关规则

    • 增加.eslintignore配置文件,设置那些文件不需要eslint校验

    • 增加.prettierignore配置文件,设置那些文件不需要prettier校验

    • 增加.vscode/settings.json文件,设置VsCode更加方便开发,没有这个文件可以点击管理(左下角的轮子icon)-设置-工作区-打开设置(json)(右上角弯曲箭头+纸张的icon)就会自动新建出来文件,设置一些保存自动修改等配置

      .gitignore文件中设置忽略了.vscode,要想提交修改,需要删除

    • VsCode插件安装:ESLint、Prettier - Code formatter、Vue - Official

    详细案例配置请查看文末案例项目地址

遇到问题

1. 感觉eslint配置文件没有使用已安装依赖中的eslint-plugin-vue、eslint-plugin-prettier,或者是配置与其他博文不一样

原来文件内容.eslintrc.js

module.exports = {root: true,env: {node: true,},extends: ["plugin:vue/essential","eslint:recommended","plugin:prettier/recommended",],parserOptions: {parser: "@babel/eslint-parser",},rules: {"no-console": process.env.NODE_ENV === "production" ? "warn" : "off","no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",},
};

一些博文配置

module.exports = {root: true,env: {node: true,},extends: ["plugin:vue/essential","eslint:recommended","plugin:prettier/recommended",],plugins: ["vue","prettier",],parserOptions: {parser: "@babel/eslint-parser",},rules: {"no-console": process.env.NODE_ENV === "production" ? "warn" : "off","no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",},
};  

上面这样的是完全错误的,不要照着进行修改(不要问我为什么知道的o(╥﹏╥)o)

实际上,原项目中extends中的plugin:vue/essential相当于做了如下配置

module.exports = {parser: require.resolve('vue-eslint-parser'),parserOptions: {ecmaVersion: 2020,sourceType: 'module'},env: {browser: true,es6: true},plugins: ['vue'],rules: {... // 这里省略很多规则配置}
}

原项目中extends中的plugin:prettier/recommended相当于做了如下配置

module.exports = {extends: ['prettier'],plugins: ['prettier'],rules: {... // 这里省略很多规则配置}
}

所以完全没有必要修改!!!

2. VsCode中template上面使用v-for报错,不能在template上设置key

vue2的项目要求template上面使用v-for时,要在template上面设置key,但是vue3中这个要求确实反的,要像解决这个问题,安装Vetur插件,不安装或者禁用Vue - Official

3. VsCode没有在不符合规范的代码位置标红,已经安装Eslint插件

正常情况下,打开vue文件,右下角vue左边有个{}图标(没有这个图标,可以右键-勾选编辑器语言状态),鼠标移上去不显示Eslint就是有问题,解决办法是升级VsCode编辑器,1.91.1版本是可以的

4. Eslint修复之后,保存之后又变回去(VsCode配置保存自动修复),VsCode还是标红

这种原因是eslint和prettier规则冲突 :例如:prettier的singleQuote与eslint的quotes配置这两个都是关于引号的配置,如果一个要求单引号,一个要求双引号,这样就会出现问题

另一个原因是修改了规则,没有重启VsCode

5. 配置的eslint或者prettier规则没有生效

出现这种情况的原因是:配置的值错误;另一个原因是修改了规则,没有重启VsCode

配置的值错误,例如:.eslintrc.js中"quotes": “double”,这个时候保存会出现右下角vue左边有个{}图标多了一个x,或者单独把Eslint添加到状态栏会看到Eslint变红了,点击会看到报错内容,Configuration for rule “quotes” is invalid:Severity should be one of the following: 0 = off, 1 = warn, 2 = error (you passed ‘“double”’),想要设置这个需要两个值,这个时候需要是数组,“quotes”: [“error”, “double”]

prettier的规则trailingComma: “es5111”,这个时候保存出现右下角Prettier变红,点击可以看到Invalid trailingComma value. Expected “all”, “es5” or “none”, but received “es5111”,人家要求的是es5,trailingComma: “es5”

6. Prettier 格式化后,结束标签的 > 换行了

.prettierrc.js文件里面增加规则

htmlWhitespaceSensitivity: 'ignore'

案例项目地址

https://gitee.com/lydxwj/vue-standard
在这里插入图片描述

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

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

相关文章

CAE仿真软件怎样下载和安装?

CAE仿真软件是一类专业工程软件,通过数值计算和仿真技术,帮助工程师和设计师在计算机上模拟和分析各种工程问题,如结构强度、热传导、流体力学等,从而优化产品设计、减少试验成本,提高产品性能和质量。HyperWorks是常见…

快手文生图模型-Kolors快速上手

Kolors是什么 可图(Kolors):用于真实感文本到图像合成的扩散模型的有效训练 可图,是快手开源的一个文生图模型,架构上使用了chatglm,比普通的sd模型在中文理解上要强大很多,以往sd模型的提示词理解能力往往只有两种 …

二进制部署k8s集群之cni网络插件flannel和calico工作原理

3、部署 CNI 网络组件 在 master01 节点上操作 上传flannel-v0.21.5.zip并解压 unzip flannel-v0.21.5.zipscp flannel*.tar 192.168.80.20:/opt/k8s/ scp flannel*.tar 192.168.80.30:/opt/k8s/ node两个节点操作 cd /opt/k8s/ docker load -i flannel.tar docker load -i …

nginx代理设置时能获取到源IP地址的方法

nginx通过http_x_forwarded_for限制来访IP示例_ngnix 根据header的x-forwarded-for限制接入-CSDN博客 名称ip客户端地址10.0.23.90nginx服务器地址110.0.202.48:18888,代理到10.0.204.82:8888nginx服务器地址210.0.204.82:8888,代理到10.0.204.82:8887后…

自写ApiTools工具,功能参考Postman和ApiPost

近日在使用ApiPost的时候,发现新版本8和7不兼容,也就是说8不支持离线操作,而7可以。 我想说,我就是因为不想登录使用才从Postman换到ApiPost的。 众所周知,postman时国外软件,登录经常性抽风,…

leetcode 1555 银行账号概要(postgresql)

需求 用户表: Users --------------------- | Column Name | Type | --------------------- | user_id | int | | user_name | varchar | | credit | int | --------------------- user_id 是这个表的主键。 表中的每一列包含每一个用户当前的额度信息。 交易表&…

使用 Elastic Observability 中的 OpenTelemetry 进行基础设施监控

作者:来自 Elastic ISHLEEN KAUR 将 OpenTelemetry 与 Elastic Observability 相结合,形成应用程序和基础设施监控解决方案。 在 Elastic,我们最近决定全面采用 OpenTelemetry 作为首要的数据收集框架。作为一名可观察性工程师,我…

分享5款ai头像工具,助你轻松实现社交新形象

如今,无论是社交媒体上的个人形象塑造,还是虚拟世界中的角色扮演,一个独特而吸引人的AI头像都能成为你个性化的代表。 例如,ai头像男古风通常代表着一种对传统文化的尊重和热爱;而现代简约头像可能代表着一种追求简洁…

Mongodb集合操作

文章目录 1、进入容器2、如果数据库不存在,则创建数据库,否则切换到指定数据库3、在 MongoDB 中,创建集合不是必须操作。当你插入一些文档时,MongoDB 会自动创建集合。4、查看数据库列表5、查看集合6、显示创建集合7、删除集合 1、…

百度竞价托管如何判断关键词出价是否偏高

在百度竞价推广中,关键词出价的高低直接影响着广告的展示位置、点击率以及最终的转化效果。然而,过高的出价不仅会增加推广成本,还可能导致预算的浪费。因此,作为百度竞价托管 www.pansem.com 的专业团队,如何准确判断…

springboot校园跑腿服务系统-计算机毕业设计源码15157

摘要 本文介绍了一种基于Springboot和uniapp的校园跑腿服务系统的设计与实现。该系统旨在为大学校园提供一种方便快捷的跑腿服务,满足学生和教职员工的日常需求。首先,系统采用了Springboot作为后端框架,利用其轻量级、高效的特性&#xff0c…

httpx,一个网络请求的 Python 新宠儿

大家好!我是爱摸鱼的小鸿,关注我,收看每期的编程干货。 一个简单的库,也许能够开启我们的智慧之门, 一个普通的方法,也许能在危急时刻挽救我们于水深火热, 一个新颖的思维方式,也许能…

计算机网络-七层协议栈介绍

之前介绍了网络世界的构成,从宏观角度介绍了网络设备和网络架构,链接: link,但是这种认识过于粗糙,过于肤浅。网络本质上是用于主机之间的通信,是端对端的连接通信,两台计算机可能距离很远,主机…

thinkPHP开发的彩漂网站源码,含pc端和手机端

源码简介 后台thinkPHP架构,页面程序双分离,Mysql数据库严谨数据结构、多重数据审核机制、出票机制和监控机制,html5前端技术适用移动端,后台逻辑更多以server接口可快捷实现对接pc和ap,下载会有少量图片素材丢失,附件有下载说明前端demo账户密码和后台管理地址管理员账户密码…

C 语言动态链表

线性结构->顺序存储->动态链表 一、理论部分 从起源中理解事物,就是从本质上理解事物。 -杜勒鲁奇 动态链表是通过结点(Node)的集合来非连续地存储数据,结点之间通过指针相互连接。 动态链表本身就是一种动态分配内存的…

Java 8-函数式接口

目录 一、概述 二、 函数式接口作为方法的参数 三、函数式接口作为方法的返回值 四、 常用的函数式接口 简单总结 简单示例 4.1 Consumer接口 简单案例 自我练习 实际应用场景 多线程处理 4.2 Supplier接口 简单案例 自我练习 实际应用场景 配置管理 4.3 Func…

TypeError: Components is not a function

Vue中按需引入Element-plus时,报错TypeError: Components is not a function。 1、参考Element-plus官方文档 安装unplugin-vue-components 和 unplugin-auto-import这两款插件 2、然后需要在vue.config.js中配置webPack打包plugin配置 3、重新启动项目会报错 T…

Java----反射

什么是反射? 反射就是允许对成员变量、成员方法和构造方法的信息进行编程访问。换句话来讲,就是通过反射,我们可以在不需要创建其对象的情况下就可以获取其定义的各种属性值以及方法。常见的应用就是IDEA中的提示功能,当我…

鸿蒙(HarmonyOS)自定义Dialog实现时间选择控件

一、操作环境 操作系统: Windows 11 专业版、IDE:DevEco Studio 3.1.1 Release、SDK:HarmonyOS 3.1.0(API 9) 二、效果图 三、代码 SelectedDateDialog.ets文件/*** 时间选择*/ CustomDialog export struct SelectedDateDialog {State selectedDate:…

声学气膜馆的优势:卓越声学性能与多样化应用—轻空间

随着科技的发展和人们对音质要求的提高,声学气膜馆逐渐成为现代建筑中的重要组成部分。声学气膜馆不仅在设计和声学性能上有显著优势,还在提高场馆舒适度、增加活动多样性以及带来经济效益方面表现突出。 提升声学环境质量 声学气膜馆通过利用先进的声学…