独立使用ESLint+Prettier对代码进行格式校验

简介: 独立使用ESLint+Prettier对代码进行格式校验

前言


写Vue项目时,使用CLI搭建项目,勾选上ESLint+Prettier就会自动帮我们配置好,最近写的代码脱离了webpack,想规范自己的代码格式,搜了很多文章,大都是基于webpack的。


经过我一番折腾后,终于搞出了不需要webpack就能让编辑器结合ESLint对代码进行格式校验,接下来就跟大家分享下我的实现过程,欢迎各位感兴趣的开发者阅读本文。


环境搭建


本文使用的编辑器器是WebStorm,采用的包管理工具是yarn。


安装ESLint


开始之前,先跟大家看下我的项目结构,是一个很简单的js项目。


640.png


  • 初始化一个项目


# 项目根目录执行,执行后填写相关信息,初始化成功后,项目根目录会多一个package.json文件
yarn init


  • 安装依赖
# 项目根目录执行,执行完成后项目根目录会多一个yarn.lock文件
yarn install


  • 安装ESLint
# 项目根目录执行
yarn add eslint --dev


  • 初始化ESLint
# 项目根目录执行
yarn eslint --init
# 执行后,会出现如下选择
# 你想如何使用ESLint,我选择第二项校验代码和解决方案
✔ How would you like to use ESLint? · problems
# 使用什么作为项目模块,我选择import/export
✔ What type of modules does your project use? · esm
# 项目使用哪个框架,我选择第三项不使用框架
✔ Which framework does your project use? · none
# 项目是否使用typescript,我选择yes
✔ Does your project use TypeScript? · No / Yes
# 代码运行环境,我选择了浏览器和node
✔ Where does your code run? · browser, node
# eslint配置文件的格式,我选择json配置格式
✔ What format do you want your config file to be in? · JSON
# 是否安装如下依赖
The config that you've selected requires the following dependencies:
@typescript-eslint/eslint-plugin@latest @typescript-eslint/parser@latest
# 这里选择no,一会自己安装缺少的依赖
✔ Would you like to install them now with npm? · No / Yes
Successfully created .eslintrc.json file in /Users/likai/Documents/WebProject/JavaScript-test
✨  Done in 85.77s.


  • 安装插件让ESLint支持TypeScript
yarn add typescript @typescript-eslint/parser @typescript-eslint/eslint-plugin --dev


执行完上述步骤后,项目目录如下图所示


640.png


安装prettier


  • 安装插件
yarn add prettier --dev


  • 配置prettier规则,项目根目录创建.prettierrc.json文件,添加下述代码
{
  "printWidth": 160, // 每一行的代码字符
  "tabWidth": 4, // tab的长度
  "useTabs": true, // 使用tab
  "singleQuote": false, // 使用单引号代替双引号
  "semi": true, // 末尾分号
  "trailingComma": "none", // 删除数组末尾逗号
  "bracketSpacing": true // 大括号之间的空格
}


配置编辑器


配置ESLint


  • 打开webstorm的设置面板,按照图中所示进行设置


640.png


  • 在eslint配置文件处右击,按照图中所示进行操作


640.png


配置prettier


  • 打开webstorm的设置面板,按照图中所示进行设置


640.png


更多配置


本文只介绍ESLint和prettier的入门使用,更多配置请移步:


ESLint文档: ESLint

Prettier文档: Prettier


结果测试


随便打开一个ts文件,我们发现已经有eslint的相关提示了。


640.png


测试下自动格式化代码,如图所示写完代码后按Ctrl+S即可自动格式化


640.gif

相关文章
|
资源调度
There appears to be trouble with your network connection.Retrying
There appears to be trouble with your network connection.Retrying
2210 0
There appears to be trouble with your network connection.Retrying
|
10月前
|
存储 测试技术 Python
Python 中别再用 ‘+‘ 拼接字符串了!
通过选择合适的字符串拼接方法,可以显著提升 Python 代码的效率和可读性。在实际开发中,根据具体需求和场景选择最佳的方法,避免不必要的性能损失。
191 5
|
iOS开发 MacOS Windows
electron-updater实现electron全量版本更新
electron-updater实现electron全量版本更新
1959 9
electron-updater实现electron全量版本更新
Vue3级联选择(Cascader)
这是一个可定制的级联选择器组件,支持多级下拉选项。主要属性包括:数据源、文本字段、值字段、后代字段、占位符文本、选择行为、间距、宽度、高度、禁用状态、清除功能、搜索功能及过滤函数等。组件可根据需求灵活配置,并支持动态更新与事件回调。在线预览和详细示例可见[这里](https://themusecatcher.github.io/vue-amazing-ui/guide/components/cascader.html)。
797 2
Vue3级联选择(Cascader)
|
开发框架 前端开发 JavaScript
循序渐进VUE+Element 前端应用开发(29)--- 高级查询条件的界面设计
循序渐进VUE+Element 前端应用开发(29)--- 高级查询条件的界面设计
|
存储 JavaScript 前端开发
OA系统构建排座
OA系统构建排座
245 0
|
小程序 前端开发
wx.login 和 wx.getUserProfile 同时使用问题
wx.login 和 wx.getUserProfile 同时使用问题
wx.login 和 wx.getUserProfile 同时使用问题
|
Web App开发
Failed to read the ‘localStorage‘ property from ‘Window‘: Access is denied ...
Failed to read the ‘localStorage‘ property from ‘Window‘: Access is denied ...
1520 0
|
JavaScript 定位技术 API
vue加载地图,在tab切换到其他页面再切换回来的时候,地图不显示了
vue加载地图,在tab切换到其他页面再切换回来的时候,地图不显示了
1704 0
|
机器学习/深度学习 算法 物联网
基于RSSI室内定位算法介绍
基于RSSI室内定位算法介绍
866 0