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的更多相关文章

  1. 如何在sharepoint2010中配置Google Anlytics 分析服务

      简介 Google Analytics(分析)不仅可以帮助您衡量销售与转化情况,而且能为您提供新鲜的深入信息,帮助您了解访问者如何使用您的网站,他们如何到达您的网站,以及您可以如何吸引他们不断回访 ...

  2. 如何在IAR中配置CRC参数(转)

    源:如何在IAR中配置CRC参数 前言 STM32全系列产品都具有CRC外设,对CRC的计算提供硬件支持,为应用程序节省了代码空间.CRC校验值可以用于数据传输中的数据正确性的验证,也可用于数据存储时 ...

  3. 如何在Eclipse中配置Tomcat(免安装版)

    如何在Eclipse中配置Tomcat(免安装版) 2013-10-09 23:19wgelgrsh | 分类:JAVA相关 | 浏览642次 分享到:   2013-10-10 17:10提问者采纳 ...

  4. 如何在appconfig中配置服务的ip

    开发了一个WindowsService消息服务器,刚开始一直都是在代码中把IP地址写死,所以每次只要是更换了新的IP地址后,都需要重新编译项目.所以考虑把ip配置到config文件中, 这样做的好处是 ...

  5. Nodejs的安装配置及如何在sublimetext2中运行js

    Nodejs的安装配置及如何在sublimetext2中运行js听语音 | 浏览:4554 | 更新:2015-06-16 11:29 Nodejs的安装配置及如何在sublimetext2中运行js ...

  6. 【神经网络与深度学习】如何在Caffe中配置每一个层的结构

    如何在Caffe中配置每一个层的结构 最近刚在电脑上装好Caffe,由于神经网络中有不同的层结构,不同类型的层又有不同的参数,所有就根据Caffe官网的说明文档做了一个简单的总结. 1. Vision ...

  7. 如何在Mac中配置Python虚拟环境,踩了好多坑

    如何在Mac中配置Python虚拟环境 1.安装virtualenv pip3 install virtualenv 2.安装virtualenvwrapper pip3 install virtua ...

  8. 如何在webstrom中配置eslint和less

    webstrom 帮助文档(英文版) 1.在webstrom中使用ESLint规范代码格式: JSHint 可以帮助检测你的 JavaScript 代码中的错误和潜在的问题,而 eslint是一个 J ...

  9. 如何在idea中配置Tomcat服务器

    .IDEA 中动态 web 工程的操作         a)IDEA 中如何创建动态 web 工程        1.创建一个新模块: 2.选择你要创建什么类型的模块 3.输入你的模块名,点击[Fin ...

随机推荐

  1. Java安全第一篇 | 反射看这一篇就够了

    什么是反射? Java安全可以从反序列化漏洞说起,反序列化漏洞又可以从反射说起.反射是⼤多数语⾔⾥都必不可少的组成部分,对象可以通过反射获取他的类,类可以通过反射拿到所有⽅法(包括私有),拿到的⽅法可 ...

  2. 使用Docker 部署MongoDB

    使用 Docker 部署 MongoDB 查看官网安装教程后感觉直接使用包管理器安装mongo比较复杂,本文主要介绍使用docker安装部署mongo的方法,并对基本配置项进行自定义.保姆式全程指导. ...

  3. web服务器-nginx虚拟主机

    web服务器-nginx虚拟主机 一 虚拟主机介绍 就是把一台物理服务器划分成多个虚拟的服务器, 每一个虚拟主机都可以有独立的域名和独立的目录,同时发布俩个网站. 二. 基于IP的虚拟主机 应用场景: ...

  4. OpenCores注册步骤和成功提交

    一  OpenCores 网站简介,这个是全世界最大的FPGA开源IP核网站.由于最近在学习USB2.0host control IP,所以想去网上下载相关的IP例程学习.通过搜索发现,有两个网站十分 ...

  5. [NPUCTF2020]Baby Obfuscation wp

    整体观察main函数,可以发现用户自定义函数和变量存在混淆,猜测为函数名及变量名asc混淆. 对函数进行分析: Fox1为欧几里得算法求最大公约数 Fox5其实是pow Fox4根据逻辑数学的法则实际 ...

  6. JWT jti和kid属性的说明

    jti chaim=== JWT ID " jti"(JWT ID)声明为JWT提供了唯一的标识符. 标识符值的分配方式必须确保将相同值偶然分配给不同数据对象的可能性可以忽略不计: ...

  7. 什么是 Redis?

    Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key-value 数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis 支持数据的持久化,可以 ...

  8. 给定一个奇数n,比如n=3,生成1到n平方的数,如1到9,填入九宫格,使得横竖斜的和都相等。

    对于N阶幻方,从1开始把数字从小到大按以下规则依次写入: 一.在第一行中间一列写入1 二.依次向右上方写入2.3.4...... 三.如果某数字写在了表格的某个方向外面,那就把这个数字向相反方向移动N ...

  9. Elasticsearch 在部署时,对 Linux 的设置有哪些优化方 法?

    1.64 GB 内存的机器是非常理想的, 但是 32 GB 和 16 GB 机器也是很常见的. 少于 8 GB 会适得其反. 2.如果你要在更快的 CPUs 和更多的核心之间选择,选择更多的核心更好. ...

  10. 学习RabbitMQ(二)

    MOM(message oriented middleware) 消息中间件(是在消息的传递过程中保存消息的容器,消息中间件再将消息从它的源中继到它的目标时,充当中间人的作用,队列的主要目的是提供路由 ...