eslint配置介绍-如何在uniapp中配置eslint
eslint uniapp-eslint及vue-eslint配置

ESLint 是一个开源的 JavaScript 代码检查工具。可以让程序员在编码的过程中发现问题而不是在执行的过程中。
1. eslint的特性
请直接参考文档
附:其他文件的格式设置
一般eslint只作用在项目相关的文件内,而像package.json这类文件我们可以使用VScode中的EditorConfig for VS Code插件来配置
1// 为了与eslint统一性,一般会这样配置
2[*.{js,vue,json,html,css,less}]
3indent_style = tab
4indent_size = 4
5trim_trailing_whitespace = true
6insert_final_newline = true
2. 开始使用
- 安装eslint
1$ npm install eslint --save-dev
- 安装好后需初始化并设置配置文件
1// 在package.json中添加
2"scripts": {
3 "eslint": "eslint --init"
4}
5
6// 在项目下执行,并选择设置,如下图
7$ npm run eslint

这样我们就在项目中添加了.eslintrc.js
1module.exports = {
2 'env': {
3 'browser': true,
4 'es6': true,
5 'node': true
6 },
7 'extends': 'eslint:recommended',
8 'globals': {
9 'Atomics': 'readonly',
10 'SharedArrayBuffer': 'readonly'
11 },
12 'parserOptions': {
13 'ecmaVersion': 2018,
14 'sourceType': 'module'
15 },
16 'rules': {
17 'indent': [
18 'error',
19 'tab'
20 ],
21 'linebreak-style': [
22 'error',
23 'windows'
24 ],
25 'quotes': [
26 'error',
27 'single'
28 ],
29 'semi': [
30 'error',
31 'always'
32 ]
33 }
34};
具体的配置请参照文档
- 最后我们就可以使用了
1// 在package.json中添加
2"scripts": {
3 "lint": "eslint [项目文件路径]"
4}
5
6// 执行eslint
7$ npm run lint
另外:我们都知道eslint是js的检查工具,但是我们的项目中可能有.html,.vue,.ts等等其他内容需要检查,这时候我们就需要安装配置一些插件来完成
- ESLint 支持使用第三方插件。在使用插件之前,你必须使用 npm 安装它。
例:eslint-plugin-vue:
1// 安装
2$ npm i eslint-plugin-vue -D
3
4// 配置
5"extends": [
6 "eslint:recommended",
7 "plugin:vue/recommended"
8],
9// 每个配置继承它前面的配置
10plugins: [
11 'vue'
12]
13// plugins 属性值 可以省略包名的前缀 eslint-plugin-。
3. @vue/cli中的eslint
@vue/cli安装项目是自动安装了eslint相关的一系列插件,其中@vue/cli-plugin-eslint提供了不同模式的选择:
1? Pick an ESLint config:
2> Error prevention only
3 Airbnb
4 Standard
5 Prettier
区别如下图:

一般可以选择Error prevention only,那么eslint直接使用eslint:recommended,即eslint中一系列核心规则,可查文档
- 同时我们查看package.json中的字段:
1"devDependencies": {
2 "@vue/cli-plugin-eslint": "^4.1.0",
3 "babel-eslint": "^10.0.3",
4 "eslint": "^5.16.0",
5 "eslint-plugin-vue": "^5.0.0",
6}
@vue/cli-plugin-eslint是一款vue-cli的eslint插件,就是它为我们初始化了一些配置:
1base: {
2 eslint: '^6.7.2',
3 'eslint-plugin-vue': '^6.1.2'
4},
5airbnb: {
6 '@vue/eslint-config-airbnb': '^5.0.2',
7 'eslint-plugin-import': '^2.20.1'
8},
9prettier: {
10 '@vue/eslint-config-prettier': '^6.0.0',
11 'eslint-plugin-prettier': '^3.1.1',
12 prettier: '^1.19.1'
13},
14standard: {
15 '@vue/eslint-config-standard': '^5.1.0',
16 'eslint-plugin-import': '^2.20.1',
17 'eslint-plugin-node': '^11.0.0',
18 'eslint-plugin-promise': '^4.2.1',
19 'eslint-plugin-standard': '^4.0.0'
20}
可以看到不同的模式提供不同的插件,而其中base是默认一定会安装的项目
- base提供的默认配置如下:
1{
2 parser: require.resolve('vue-eslint-parser'),
3 parserOptions: {
4 ecmaVersion: 2018,
5 sourceType: 'module',
6 ecmaFeatures: {
7 jsx: true
8 }
9 },
10 env: {
11 browser: true,
12 es6: true
13 },
14 plugins: [
15 'vue'
16 ],
17 rules: {
18 'vue/comment-directive': 'error',
19 'vue/jsx-uses-vars': 'error'
20 }
21}
我们知道每个配置继承它前面的配置,所以@vue/cli项目中这些配置可以略去不写。
- 关于babel-eslint的配置,正常我们会写
1{
2 parser: "babel-eslint",
3 parserOptions: {
4 //...
5 }
6}
但是eslint-plugin-vue中的很多规则都需要vue-eslint-parser检查<template>, vue-eslint-parser和babel-parser二者有冲突。所以我们使用已下写法
1parserOptions: {
2 parser: 'babel-eslint',
3 //...
4},
如果我们选择Standard模式
- 查看package.json中的字段:
1"devDependencies": {
2 "@vue/cli-plugin-eslint": "^4.1.0",
3 "@vue/eslint-config-standard": "^4.0.0",
4 "babel-eslint": "^10.0.3",
5 "eslint": "^5.16.0",
6 "eslint-plugin-vue": "^5.0.0",
7}
根据上述的模式配置会额外安装响应的插件@vue/eslint-config-standard,这时配置是这样的:
1'extends': [
2 'plugin:vue/essential',
3 '@vue/standard'
4]
@vue/eslint-config-standard插件的配置替代了eslint的核心规则,其规则配置在./node_modules/eslint-config-standard/eslintrc.json中查看
注:当你选择其他模式的时候,即选择了模式中配置好的规则,这时一般不赞成再去修改规则,否则就用默认模式好了
4. prettier
prettier是eslint的一款插件,格式化代码工具。
使用prettier却不能随意的配置我们自己想要的风格。大多数人会觉得Prettier 风格非常差,但是如果开发团队人数众多时,prettier不但节省了手动去调整代码风格的时间,而且减少了成员之间无畏的争执。
如果在@vue/cli项目中,之间选择prettier模式就行了
如果需要自己安装prettier,过程如下:
安装
1npm i prettier eslint-config-prettier eslint-plugin-prettier --D
配置
1{
2 "extends": [
3 ...,
4 "prettier",
5 "plugin:prettier/recommended"
6 ],
7 "plugins": ["prettier"],
8 "rules": {
9 "prettier/prettier": "error"
10 }
11}
少数配置可以自行设置.prettierrc.js文件
5. uniapp中配置eslint
你当然可以重头开始安装eslint,然后初始化,最后安装你所需要的插件,比如eslint-plugin-vue,但是uniapp小程序项目的构建也使用了@vue/cli工具,所以我们可以直接拿来用
安装
1$ vue add @vue/eslint
2
3// 同样的可以选择@vue/cli-plugin-eslint提供的四个模式
4
5? Pick an ESLint config: Basic
6? Pick additional lint features: Lint on save
在配置上,大部分是通用的,但是我们应该为小程序配置全局变量
1"globals": {
2 "swan": "readonly",
3 "wx": "readonly",
4 "uni": "readonly"
5}
执行结果如下:

长按二维码关注公众号

eslint配置介绍-如何在uniapp中配置eslint的更多相关文章
- 如何在sharepoint2010中配置Google Anlytics 分析服务
简介 Google Analytics(分析)不仅可以帮助您衡量销售与转化情况,而且能为您提供新鲜的深入信息,帮助您了解访问者如何使用您的网站,他们如何到达您的网站,以及您可以如何吸引他们不断回访 ...
- 如何在IAR中配置CRC参数(转)
源:如何在IAR中配置CRC参数 前言 STM32全系列产品都具有CRC外设,对CRC的计算提供硬件支持,为应用程序节省了代码空间.CRC校验值可以用于数据传输中的数据正确性的验证,也可用于数据存储时 ...
- 如何在Eclipse中配置Tomcat(免安装版)
如何在Eclipse中配置Tomcat(免安装版) 2013-10-09 23:19wgelgrsh | 分类:JAVA相关 | 浏览642次 分享到: 2013-10-10 17:10提问者采纳 ...
- 如何在appconfig中配置服务的ip
开发了一个WindowsService消息服务器,刚开始一直都是在代码中把IP地址写死,所以每次只要是更换了新的IP地址后,都需要重新编译项目.所以考虑把ip配置到config文件中, 这样做的好处是 ...
- Nodejs的安装配置及如何在sublimetext2中运行js
Nodejs的安装配置及如何在sublimetext2中运行js听语音 | 浏览:4554 | 更新:2015-06-16 11:29 Nodejs的安装配置及如何在sublimetext2中运行js ...
- 【神经网络与深度学习】如何在Caffe中配置每一个层的结构
如何在Caffe中配置每一个层的结构 最近刚在电脑上装好Caffe,由于神经网络中有不同的层结构,不同类型的层又有不同的参数,所有就根据Caffe官网的说明文档做了一个简单的总结. 1. Vision ...
- 如何在Mac中配置Python虚拟环境,踩了好多坑
如何在Mac中配置Python虚拟环境 1.安装virtualenv pip3 install virtualenv 2.安装virtualenvwrapper pip3 install virtua ...
- 如何在webstrom中配置eslint和less
webstrom 帮助文档(英文版) 1.在webstrom中使用ESLint规范代码格式: JSHint 可以帮助检测你的 JavaScript 代码中的错误和潜在的问题,而 eslint是一个 J ...
- 如何在idea中配置Tomcat服务器
.IDEA 中动态 web 工程的操作 a)IDEA 中如何创建动态 web 工程 1.创建一个新模块: 2.选择你要创建什么类型的模块 3.输入你的模块名,点击[Fin ...
随机推荐
- 5月28日 python学习总结 CSS学习(一)
1. CSS是什么 层叠样式表 --> 给HTML添加样式的 2. CSS的语法 选择器 { 属性1:值1; 属性2:值2; } 3. CSS引入方式 1. 直接写在HTMl标签里面 <p ...
- Redis快速入门:初识Redis
[IT168 专稿]在之前的文章中介绍了<Redis快速入门:选择Key-Value Store>,今天给大家介绍Redis的入门知识.Redis是一个开源的使用ANSI C语言编写.支持 ...
- 两天入门SolidWorks2016
视频:https://www.bilibili.com/video/BV1ub411c7ct 饭前甜点--基本设置 一.界面设置 1.1 调出文件栏 打开SOLIDWORKS 2016 x64 Edi ...
- 『忘了再学』Shell基础 — 3、echo命令的介绍与使用
目录 1.echo命令的作用 2.echo命令的基本用法 3.echo命令的-e选项用法 4.echo命令一些特殊用法 (1)输出字符带有字体颜色 (2)输出字符带有背景颜色 在讲Shell脚本之前, ...
- 论文翻译:2018_Source localization using deep neural networks in a shallow water environment
论文地址:https://asa.scitation.org/doi/abs/10.1121/1.5036725 深度神经网络在浅水环境中的源定位 摘要: 深度神经网络(DNNs)在表征复杂的非线性关 ...
- HyBird App(混合应用)核心原理JSBridge
目录 app分类 HyBird App(混合应用) JSBridge介绍 优势及应用场景 JsBridge的核心 1.Web端调用Native端代码 1.1 拦截URL Schema 1.2 注入ap ...
- 前端工程化 Webpack基础
前端工程化 模块化 (js模块化,css模块化,其他资源模块化) 组件化 (复用现有的UI结构.样式.行为) 规范化 (目录结构的划分.编码规范化.接口规范化.文档规范化.Git分支管理) 自动化 ( ...
- 记-Windows环境下Prometheus+alertmanager+windows_exporter+mtail监控部署
1.概述 最近因项目需要统计服务的负载情况及机器的负载情况,但是项目里面却没有相关统计而服务所在的机器也没有相关的监控,因为工期原因就选择了相对轻量级的prometheus方案.其中windows_e ...
- kafka端口和zookeeper端口
一.问题描述 今天配合现场联调一个数据工具,工具使用到了kafka,程序启动之后包如下错误: [WARN ] [2020-08-17 19:17:27] [org.apache.kafka.clien ...
- spring-boot-learning-spring Security
SpringSecurity的简单原理: 一旦启用了Spring Security,Spring IoC容器就会为你创建一个名称为springSecurityFilterChain 的Spring B ...