热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

手把手教你构建vue项目(微信h5以及hybrid混合开发)(六)——eslint和prettier相结合

前面一开始的时候我并没有在项目中增加eslint代码规范,eslint对于协同工作和代码规范都是很重要的工具,那么现在就在已有的项目上配置eslint。

前面一开始的时候我并没有在项目中增加eslint代码规范,eslint对于协同工作和代码规范都是很重要的工具,那么现在就在已有的项目上配置eslint。


1.通过vue add eslint命令

官网配置地址
在这里插入图片描述
在这里插入图片描述
命令安装相关依赖之后,会弹出相关的配置选项
1) Pick an ESLint config,选择Prettier
在这里插入图片描述
2) Pick additional lint features: 选择Lint on save,即保存时修复错误语法
在这里插入图片描述
3) 选完之后你会多出.eslint.js文件

相关配置如下:

module.exports = {root: true,env: {node: true,},extends: ['plugin:vue/essential', 'eslint:recommended', '@vue/prettier'],parserOptions: {parser: 'babel-eslint',},rules: {'no-console': process.env.NODE_ENV === 'production' ? 2 : 0,'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,semi: [2, 'never'],quotes: [2, 'single', { allowTemplateLiterals: true }],},
}

4) 在src根目录新建.prettierrc.js,该文件主要是配合prettier格式化使用
prettier官网
.prettierrc.js

// prettier.config.js or .prettierrc.js
module.exports = {trailingComma: 'es5',tabWidth: 4,semi: false,singleQuote: true,
}

5) 在src根目录新建.editorconfig,该文件主要起到跨编辑器代码约束的作用,通俗的将就是有人喜欢用webstorm,有人喜欢用vscode,保持两种编辑器的基本代码规范一样
.editorconfig

# 告诉EditorConfig插件,这是根文件,不用继续往上查找
root = true# 匹配全部文件
[*]
# 设置字符集
charset = utf-8
# 缩进风格,可选space、tab
indent_style = space
# 缩进的空格数
indent_size = 2
# 结尾换行符,可选lf、cr、crlf
end_of_line = lf
# 在文件结尾插入新行
insert_final_newline = true
# 删除一行中的前后空格
trim_trailing_whitespace = true# 匹配md结尾的文件
[*.md]
insert_final_newline = false
trim_trailing_whitespace = false

2.在vue.config.js中进行eslint的相关配置

vue.config.js中的相关配置

module.exports = {// 在开发环境保存并且修复lintOnSave: process.env.NODE_ENV === 'development',// eslint报错遮罩devServer: {overlay: {warnings: true,errors: true}},chainWebpack(config){// 注入eslint规则config.module.rule('eslint')config.module.rule('eslint').use('eslint-loader')}
}

3.vscode的eslint相关配置

1) 在vscode插件管理中添加vetur和prettier两个插件
在这里插入图片描述
在这里插入图片描述
2)配置settings.json文件
操作步骤
文件->首选项->设置
在这里插入图片描述
打开用户设置,setting.json文件
在这里插入图片描述
这里我直接粘贴我的配置文件,里面注释很详细

{"git.ignoreMissingGitWarning": true,"workbench.startupEditor": "newUntitledFile","editor.suggestSelection": "first",// vscode默认启用了根据文件类型自动设置tabsize的选项"editor.detectIndentation": false,// 重新设定tabsize"editor.tabSize": 2,"window.zoomLevel": 0,"eslint.validate": ["Javascript","Javascriptreact","vue"],"files.associations": {"*.wpy": "vue","*.wxss": "css","*.htm": "html"},// #让函数(名)和后面的括号之间加个空格"Javascript.format.insertSpaceBeforeFunctionParenthesis": true,"Javascript.format.insertSpaceAfterSemicolonInForStatements": false,"typescript.format.insertSpaceAfterSemicolonInForStatements": false,"open-in-browser.default": "google chrome", //默认浏览器// VScode 文件搜索区域配置"search.exclude": {"**/dist": true,"**/build": true,"**/elehukouben": true,"**/.git": true,"**/.gitignore": true,"**/.svn": true,"**/.DS_Store": true,"**/.idea": true,"**/.vscode": false,"**/yarn.lock": true,"**/tmp": true,"**/node_modules/**": true,"**/bower_components/**": true,"**/image/**": true,"**/*.xml": true,"**/.history/**": true,"**/nbproject/**": true,"**/vscode/**": true},// 用来忽略工程打开的文件夹"files.exclude": {"**/.vscode": true,"**/.DS_Store": true,"**/.history": true,"**/nbproject": true},// 配置emmet是否启用tab展开缩写"emmet.triggerExpansionOnTab": true,// 配置emmet对文件类型的支持"emmet.syntaxProfiles": {"vue-html": "html","vue": "html","Javascript": "Javascriptreact","xml": {"attr_quotes": "single"}},// 在react的jsx中添加对emmet的支持"emmet.includeLanguages": {"jsx-sublime-babel-tags": "Javascriptreact","wxml": "html","Javascript": "Javascriptreact"},"[typescript]": {"editor.defaultFormatter": "vscode.typescript-language-features"},"[vue]": {"editor.defaultFormatter": "octref.vetur"},"[Javascript]": {"editor.defaultFormatter": "vscode.typescript-language-features"},"path-intellisense.mappings": {"@": "${workspaceRoot}/src","components": "${workspaceRoot}/src/components","assets": "${workspaceRoot}/src/assets","util": "${workspaceRoot}/src/util","plugin": "${workspaceRoot}/src/plugin"},"cssrem.rootFontSize": 37.5,"leetcode.endpoint": "leetcode-cn","C_Cpp.errorSquiggles": "Enabled",// 如果打开注释,文件中将不提醒eslint报错// "eslint.options": {// "plugins": [// "html"// ]// },// -----------vetur 、 prettier结合配置eslint配置begin ----------------------"vetur.format.defaultFormatter.html": "js-beautify-html","vetur.format.defaultFormatter.css": "prettier","vetur.format.defaultFormatter.postcss": "prettier","vetur.format.defaultFormatter.scss": "prettier","vetur.format.defaultFormatter.less": "prettier","vetur.format.defaultFormatter.stylus": "stylus-supremacy","vetur.format.defaultFormatter.js": "prettier","vetur.format.defaultFormatter.ts": "prettier","vetur.format.options.tabSize": 2,"vetur.format.options.useTabs": false,"vetur.format.defaultFormatterOptions": {"js-beautify-html": {// js-beautify-html settings here},"prettier": {// Prettier option here"semi": false,"singleQuote": true,"indent_size": "4","indent_char": " ","max_preserve_newlines": "5","preserve_newlines": true,"keep_array_indentation": false,"break_chained_methods": false,"indent_scripts": "normal","brace_style": "collapse","space_before_conditional": true,"unescape_strings": false,"jslint_happy": false,"end_with_newline": false,"wrap_line_length": "0","indent_inner_html": false,"comma_first": false,"e4x": false,"indent_empty_lines": false}},"editor.codeActionsOnSave": {"source.fixAll": true},"eslint.format.enable": true,// -----------vetur 、 prettier结合配置eslint配置end ----------------------"editor.wordWrap": "on","terminal.integrated.rendererType": "dom","sync.gist": "","sync.autoDownload": false,"sync.autoUpload": false,"sync.forceUpload": true,// 修改作者"fileheader.Author": "Tommy·Yang","fileheader.LastModifiedBy": "Tommy·Yang","explorer.confirmDelete": false,
}

这些配置好之后需要自定配置规范的可以到eslint官网进行查阅,并在.eslintrc.js文件中进行相关规则的配置。

我给大家看看配置后的效果,基本上每次自动报错都保存的时候都会修复
在这里插入图片描述

最后说明一点,如果你的项目中之前忘记加了eslint,这时候你的项目文件会有很多eslint报错信息,那么此时你可以执行yarn lint / npm run lint 命令可以修复大部分eslint报错。


推荐阅读
  • 服务器上的操作系统有哪些,如何选择适合的操作系统?
    本文介绍了服务器上常见的操作系统,包括系统盘镜像、数据盘镜像和整机镜像的数量。同时,还介绍了共享镜像的限制和使用方法。此外,还提供了关于华为云服务的帮助中心,其中包括产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题和视频帮助等技术文档。对于裸金属服务器的远程登录,本文介绍了使用密钥对登录的方法,并提供了部分操作系统配置示例。最后,还提到了SUSE云耀云服务器的特点和快速搭建方法。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 本文介绍了在Vue项目中如何结合Element UI解决连续上传多张图片及图片编辑的问题。作者强调了在编码前要明确需求和所需要的结果,并详细描述了自己的代码实现过程。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
author-avatar
lidasi
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有