更新版,以前的版本能够看这里: 梳理前端开发使用eslint和prettier来检查和格式化代码问题
可是须要知道的是,开发规范不只仅包含代码格式规范,还有不少内容,这里只是单独说明代码格式化规范而已。
代码格式规范的标准能够参考各大主流公司和社区,如下都是一些经常使用主流规范:javascript
参考别人的规范,制定适合本身团队使用的规范,太过复杂的规范执行起来太麻烦,太过简单的规范不如没有规范。没有绝对的规范,只有适合的规范!css
prettier 主要是为了格式化代码,而在没有 prettier 以前,是用 eslint —fix
和 编辑器自带代码格式来进行代码格式化的。html
因此二者是须要配合使用的。
旧有的解决办法是:前端
eslint —fix
来修复不符合 eslint 规则的代码,它会自动根据设置的规则来改变代码(它会包含代码样式的规则,可是 eslint 的样式规则并不太准确)。新的解决办法是:vue
eslint —fix
的增强版,用 prettier 来代替 eslint-fix
)咋一看,其实没啥区别,甚至可能发现新解决办法会更加麻烦了一些,其实步骤上确实如此,可是真正操做上,会减轻 eslint 的规则编写,也会减小不少手动修改样式的地方,格式化后的代码会更加美观,耐看。
鉴于网上文章说明的比较混乱,这里主要是为了梳理整个流程和思路。
这里多了一步是安装 eslint 和 prettier ( ide 编辑器的插件),主要就是利用 ide 编辑器作代码格式错误提醒和代码格式处理,这个操做也可使用 webpack 打包的时候来作,也可使用 gulp 或者 npm 来作,但这里借助编辑器会更方便。
开发工具能够作不少东西,是开发代码的利器,可是不一样的开发工具会有不一样的代码提示,代码格式化,代码检查的机制,这样的差别化会对团队代码规范(开发和检查)带来不少问题,因此须要统一。java
固然,若是我的不肯意更换本身用惯的开发工具的话,也不要紧,只要可以作到跟团队的开发规范保持一致也是能够的,但我的以为,这样难度比较大,毕竟开发工具和团队的开发规范不那么容易融合。
这里只说明前端业界目前最经常使用的开发工具来作例子 webstorm 。node
安装这个模块的意义在于,实际上,整个流程最核心就是这个地方,开发工具虽然支持了这2个模块,可是最终运行是必需要以这2个模块安装好才能使用的。webpack
// 这里须要全局安装最主要的两个node 模块,主要是要让 ide 编辑器可以读取全局环境来调用这2个模块 npm install eslint prettier -g --save-dev // 这个是为了 eslint 跟 prettier 能够联合使用 npm install --save-dev eslint-plugin-prettier // 这个是为了让 eslint 跟 prettier 兼容,关闭 prettier 跟 eslint 冲突的rules npm install --save-dev eslint-config-prettier
补充备注:git
eslint-config-prettier :github
模块参考信息: Integrating with ESLint · Prettier
如下顺便说一下其余咱们经常使用到的eslint 模块:
nam -g install babel-eslint eslint-plugin-html --save-dev
babel-eslint :
eslint-plugin-html:
.vue
文件的代码。更多配置方式参考:WebStorm Setup · Prettier
根据官方介绍webstorm 分别有2种处理:
若是用IntelliJ IDEA, PhpStorm, PyCharm, and other JetBrains IDEs, 则须要安装prettier插件和 eslint 插件,而webstorm 的话默认会帮你安装上,这也是推荐 webstorm 的缘由。
官方默认已经集成了 prettier 支持,只须要配置好一个全局的 prettier 模块调用方式就可使用了(必须配置)。
快捷键是:Alt-Shift-Cmd-P on macOS or Alt-Shift-Ctrl-P on Windows and Linux
氪金王的好处,升级快,支持快,免破解,省心省力不省钱!
这个版本有2种状况:
eslint-plugin-prettier
插件和启用eslint 插件配合,这里至关于使用 eslint 模块来驱动 prettier 模块,而后中间驱动则是靠eslint-plugin-prettier
。首先启用 eslint,而且配置 eslint 模块位置,默认会自动读取当前目录的 eslint.rc
配置文件,而后须要进行 npm 安装eslint-plugin-prettier
这个插件,后面再统一说明。
上面两种方式的默认快捷键都是Cmd/Ctrl-Shift-A
(在 mac 下是 comm+shift+A
),以为不舒服,按需修改快捷键便可。
eslint 的检查规则是经过配置文件.eslintrc
实现的,可是各家有各家的 eslint 配置文件GitHub - AlloyTeam/eslint-config-alloy: AlloyTeam ESLint 规则:
详细参考网址:
不过这里不纠结用哪种 eslint 的配置,具体看项目和团队,这里只是说明须要作 eslint 的配置,而且须要作一些说明:
.eslintrc
配置文件须要添加修改地方,主要是为了 prettier插件和eslint-config-prettier 插件和eslint-plugin-prettier插件使用的:
// 由于使用了 eslint 和 prettier,因此要加上他们 extends: [ 'eslint:recommended', 'plugin:prettier/recommended'], // required to lint *.vue files 使用 html参数 plugins: ['html', 'prettier'], // rules 规则就按照各家写法。
在 webstorm 下,在项目根目录
.eslintrc
做为配置文件。
prettier 的检查规则是经过配置文件.prettierrc
实现的,不过通常来讲,只须要配置少部分规则便可:.
{ "printWidth": 100, "singleQuote": true, "semi": false }
有可能会出现的状况是,prettier 格式化后,所有加了分号,可是 eslint 又要去掉分号,那么就会重复了,这里能够简单地设置 prettier 的分号设置跟 eslint 保持一致,其余如此类推,但只适用在几个比较特别的地方,能够参考官方文档。官方有详细的介绍:Configuration File · Prettier
对此我我的的理解就是,editorconfig能够协助开发工具在自动格式化或者自动排版或者录入排版的时候进行代码格式化,可是只能支持比较简单的规则,不过也减轻了一部分代码格式化的压力和成本,因此有比没有好,并且最好要有。
// 放在项目根目录的.editorconfig文件 root = true [*] charset = utf-8 indent_style = space indent_size = 2 end_of_line = lf insert_final_newline = true trim_trailing_whitespace = true
详细参考:
须要明确一点,代码格式化须要由上而下执行,若是没有强制性压力督促,那么是对抗不了人类的惰性的。
整个代码检查和格式化流程应该规范为以下步骤:
参考文档:
本文转载自个人 blog:更新版 - 梳理前端开发使用 eslint 和 prettier 来检查和格式化代码问题