ESLint(JavaScript代码校验)

2023-11-13

概要

关于JavaScript的代码校验,2016年5月以来大家一直使用jswatchdog,

2018年4月以后,从运维的角度上来说,我们更推荐使用ESLint。

关于ESLint的设置,我们更推荐有利于kintone自定义开发的eslint-config-kintone。

这篇文章,我们将面向初学者来讲解如何安装ESLint的操作方法。

ESLint是什么

ESLint是2013年由Nicholas C. Zakas发布的一个开源JavaScript语法校验工具。

和其他工具不同的是,他的特性在于可以创作单独规则来补充追加。

ESLint可以灵活设置规则,也发布了很多公开的规则集。

作为著名的规则集,Google公司发布了面向JavaScript开发的eslint-config-google,并得到普及。

eslint-config-kintone是什么

eslint-config-kintone是kintone的开发人员,针对kintone开发的ESLint规则集。

eslint-config-kintone具有一下这些特征:

  • kintone开发的时候,可以保证代码的品质。(jswatchdog也是一样的。)

  • ESLint 虽然原来是命令行工具,但是也可以作为编辑器的扩展来安装使用。

  • 此时,它可以在编程的同时实时检查代码。

  • 在命令行上使用时,也有自动修正功能。

代码的话在GitHub上有公开。

对应编辑器

适用于主流编辑器Sublime Text、Atom等。这次以Visual Studio Code为例来说明。 对应的编辑器可以在ESLint官网里确认。

ESLint的安装(Windows)

预先准备

执行ESLint 的话,需要装有Node.js 和 npm 的环境。

  1. 从官网上下载 Node.js。这个是官网

  2. 点击 “DOWNLOADS” ,选择适合自己电脑的安装包下载。

    0015b89021b912aa3d8458f41e8176a

  3. 点击安装。

    点击 “Next” 。

0015b89022b2b6bc9d9646c6f8039ac

阅读 License 规约,“I accept the terms in ihe Licence Agreement” 的单选框打勾后,点击 “Next”。

0015b8902409eef2ad0a5a8cbcdf5dd

选择 Node.js 的安装目录,点击 “Next” 。(默认也OK的)

0015b890257c147f26a380692a2cbbb

 选择需要安装的组件,点击 “Next”。(默认也是OK的)

0015b890273599b0fb04eab8890932d

点击 “Install” 后,就开始安装了。

0015b89029521bf4fea066ae626fbd9

0015b8902b8835450df17ec10a4e119

安装结束后,点击 “Finish”。

0015b8902db55332e87e42edbf6d4cc

以上Node.js和npm就安装成功了。

安装

接下去安装ESLint和eslint-config-kintone。

※这里介绍的是全局安装的操作方法。

  1. 在命令提示符下输入 “node -v” 后确认Node.js的版本。如果版本是4.0.0以下的话,需要更新。

    2018-02-13_15h24_17.png

  2. 输入 “npm install -g eslint” 安装 ESLint。输入命令后就开始安装。

    2018-02-13_15h25_49.png

    安装结束后会出现下面的的消息。

    2018-02-13_15h26_03.png

  3. 输入 “npm install -g eslint-config-kintone” 安装 eslint-config-kintone。

    2018-02-13_15h27_51.png

  4. 输入 “npm ls -g --depth=0” ,确认ESLint和eslint-config-kintone 是否以父子的关系被安装。 

    2018-03-19_15h27_34.png

  5. 新创建 “.eslintrc.js” 文件,写入以下3行。※文件名请以 “.” 为开头。

    module.exports = {
        "extends": "eslint-config-kintone"
    };
  6.  “.eslintrc.js” 放在和想要校验的项目文件夹同级的文件夹里。

  7. 0015b8de2c29290ba9f2b24b530ea11

    ※加入任何一个项目文件夹都是执行同样的设置的话,放在 “C:\Users\用户名” 下会更方便。

执行命令行

执行ESLint,后面可以是 “eslint 文件名” 或者 “eslint 文件夹”。

例:执行 “test.js” 文件的时候
2018-02-13_16h35_05.png

▼「test.js」的范例代码

1

2

3

4

5

6

7

(function() {

    'use strict'

    var func1 = function(a, b) {

        return a+ b;

    };

    var result = func1(1, 3);

})();

※为了确认ESLint是否被正确执行了,我们故意输出一个错误信息。

実行結果

运行以后,出现如图所示的错误信息。

0015b8dea44c347e8c57f801c2e29d2

在范例代码里:

  • 漏了一个分号。

  • 运算符前后需要加空格。

  • 'result' 这个变量没有被使用。

出现了以上这些信息。

※如果运行的是无错误的文件的话,就不会出现任何信息。

关于错误信息详细,可以参考ESLint官网的Rules

运用到编辑器里

这里介绍的是如何运用到编辑器里的方法。

Sublime Text(Windows)

Sublime Text 安装eslint,只需要通过他自带的packageControl安装相应的SublimeLinter和SublimeLinter-eslint两个包。

安装方法: 

1 下载sublime-package:  https://sublime.wbond.net/Package%20Control.sublime-package

2 下载好以后,把它放到“Installed Packages”这个目录,然后重启Sublime Text。

(ps : "Installed Packages" 的默认路径是:"C:\Users\xxx\AppData\Roaming\Sublime Text 3\Installed Packages")

3 如果在Sublime Text的Preferences菜单最下边有Package Settings 和Package Control两个选项则代表安装成功了。

此时使用快捷键Ctrl+Shift+P打开Package Control菜单,输入install package,然后通过输入插件名来依次安装 SublimeLinter和SublimeLinter-eslint。

0015b9f680366c1d77b2910d8b6a983

如何检查结果

打开刚才的test.js 文件,点击左下角的图标打开调试结果画面

0015b9f680365cfd8cf77df6d348700

0015b9f68037096398c51004532bead

0015b9f680373fd2e81b154df0f5bf7

同时鼠标悬停在错误代码的行前面的小圆点上,也会显示具体的错误信息。

0015b9f61c0dfb1c727fc2fe29ce952

ESLint的安装(Mac)

事先准备

执行ESLint 的话,需要装有Node.js 和 npm 的环境。

从官网上下载 Node.js。这个 是官网。

点击 “DOWNLOADS” ,选择适合自己电脑的安装包下载。
__________2018-03-05_10.58.20.png

点击安装。

点击 “继续”。

0015b8905553d7b26600b6731e31cdd

阅读 License 规约。

0015b8905d1d712da05dabb32dabaf9

如果统一规约的话,就点击 “同意”。

0015b8905f01d52fbe56cc41f062ff9

选择安装目录后,点击 “继续” 。

0015b89060926a85af6a13fe5f2b911

在安装种类这一页,点击 “安装”。

0015b890655cf2509f6ce45365a6aa2

安装解释后,点击 “关闭” 。

0015b8906740b35a2241f0eeab8b270

以上Node.js和npm就安装成功了。

安装

接下去安装ESLint和eslint-config-kintone。

※这里介绍的是全局安装的操作方法。

  1. 在终端输入 “node -v” 后确认Node.js的版本。如果版本是4.0.0以下的话,需要更新。

    $ node -v
    v8.9.4
  2. Mac里全局安装的时候,容易出现权限错误。为了规避这个问题,
    我们可以通过以下的操作方法,做成新的目录,然后设置在那里进行安装。

    2-1.用 “mkdir” 生成一个 “.npm-global” 的目录。

    $ mkdir ~/.npm-global

    2-2.运行 “npm config set prefix”, 将此目录设置成安装目录。

    $ npm config set prefix

    2-3.运行 “vi ~/.profile” 创建或者打开 “~/.profile”。※以 “.” 作为文件的开头。

    $ vi ~/.profile

    2-4.在 “~/.profile” 文件里写入下面这行代码。※运行 “export PATH” 将会更新系统环境变量。

    export PATH=~/.npm-global/bin:$PATH

    (参考)以终端的vi编辑器操作作为范例。
      2-4-1. 输入 “a” 更改 vi 的输入模式
      2-4-2. 输入上面的1行命令
      2-4-3. 按esc键更改 vi 的命令模式
      2-4-4. 输入 “:wq” 后,保存完了

    2-5. 输入 “source ~/.profile”, 执行这个文件。

    $ source ~/.profile
  3. 输入 “npm install -g eslint” 安装ESLint。输入命令回车后,安装就开始了。

    $ npm install -g eslint

    安装结束后会出现下面的信息。

  4. 0015b8deb96726c34095bf97a802c15

    输入 “npm install -g eslint-config-kintone” 安装 eslint-config-kintone。

  5. $ npm install -g eslint-config-kintone
  6. 输入 “npm ls -g --depth=0”,で、确认ESLint和eslint-config-kintone 是否以父子的关系被安装。

    $ npm ls -g --depth=0
    (根目录)/.npm-global/lib
    ├── eslint@4.19.0
    └── eslint-config-kintone@1.2.0
  7. 输入 “vi .eslintrc.js” 新创建 “.eslintrc.js” 文件。※文件名请以 “.” 为开头。

    $ vi .eslintrc.js
  8. “~/.eslintrc.js” 文件,写入以下3行。

    module.exports = {
        "extends": "eslint-config-kintone"
    };

    (参考)以终端的vi编辑器操作作为范例。
      7-1. 输入 “a” 更改 vi 的输入模式
      7-2. 输入上面的3行命令
      7-3. 按esc键更改 vi 的命令模式
      7-4. 输入 “:wq” 后,保存完了

执行命令行

和 Windows 命令行的操作方法一样一样。

运用到编辑器里

和运用到 Windows 的编辑器里的操作方法 一样。

ESLint更多的技巧

为了更习惯使用 ESLint ,给大家介绍一些技巧。

使用自动修正功能

在命令行里加上 “--fix” 选项的话,可以自动修正代码更新文件。
※根据错误的种类,也有无法自动修正的情况。

规则设置的变更

特殊的规则例外等,需要更改设置的规则时,可以编辑 .eslintrc 文件。

  • 例1: Garoon 自定义开发使用的时候,需要将garoon对象的错误例外的时候
      添加 “globals” 参数,将 “garoon” 设置成 “true”。

  • 例2: 将特殊的规则例外的时候
      添加 “rules” 参数,将需要例外的选项设置成 “off”。

以下是反应了例1和例2 内容的 .eslintrc 文件范例。

1

2

3

4

5

6

7

8

9

10

module.exports = {

    "extends""eslint-config-kintone",

    "globals":{

        "garoon"true

    },

    "rules":{

        "no-underscore-dangle""off",

        "no-console""off"

    }

};

原文链接https://cybozudev.kf5.com/hc/kb/article/1176602/

更多文章:请查看开发者社区

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ESLint(JavaScript代码校验) 的相关文章

  • UE4 Slate 柱状图

    Fill out your copyright notice in the Description page of Project Settings include ZZTWidget h include Windows AllowWind
  • [Binospace] 深入分析HBase RPC(Protobuf)实现机制

    背景 在HMaster RegionServer内部 创建了RpcServer实例 并与Client三者之间实现了Rpc调用 HBase0 95内部引入了Google Protobuf作为中间数据组织方式 并在Protobuf提供的Rpc接
  • 类默认成员函数之拷贝构造函数

    学习完类中的默认成员函数 构造函数和析构函数 下一个学习的默认成员函数是拷贝构造函数 那么拷贝构造函数与前两个函数又有哪些区别呢 1 拷贝构造函数首先我们先知道它与构造函数构成重载 故函数名相同 我们先写一个最简单拷贝函数 class Da
  • C# 接口Get请求带Body

    这几天在调用第三方的接口遇到了GET请求并且还要带有body参数 并且参数类型还得是Json 在我的记忆力GET都是URL传参 网上找了好多方法都不行 用Postman调用可以请求到数据 但是C 代码怎么弄都不行 用Postman生成得代码
  • eclipse中提示的时候总是出现未响应的解决方案

    将eclipse自带的jre换成自己安装的jdk的jre Eclipse Window Preferences Java Installed JREs 选择jdk的安装路径 然后确定 之后勾选jdk就行了
  • java--基础--17.10--线程--CompletableFuture

    java 基础 17 10 线程 CompletableFuture 1 介绍 外链 防盗链机制 建议将图片保存下来直接上传 img Rf7tQZjW 1693300440049 image1 1 png 1 1 实现Future接口 实现
  • 反反复复

    法一 import java util ArrayList import java util Arrays import java util Collections import java util HashSet import java
  • 【C++】模板类的友元函数

    模板类友元函数 模板类的友元函数 参考 https blog csdn net dreamer lhs article details 53580088 区分 友元是否为函数模板 非模板友元 约束 bound 模板友元 友元类型取决于模板类
  • 【debug】python3 中关于“ ‘xx‘ object has no attribute ‘xx‘ “ 问题

    python3 中关于 xx object has no attribute xx 问题 python3 学习中关于 xx object has no attribute xx 问题 class Admin User 为User添加一个pr
  • volatile 类型变量提供什么保证?能使得一个非原子操作变成原子操作吗?

    volatile 变量是一种在Java中用于修饰字段的关键字 用于确保多线程之间的可见性和禁止指令重排序 volatile 修饰的变量具有以下特性 可见性 Visibility volatile 变量的值对所有线程都是可见的 当一个线程修改
  • python批量图片转pdf_批量将多个图片转PDF的记录

    本文记录了图片下载后转换成PDF的过程 期间用到了EXCEL和PYTHON 所有来源都是从网络上学习后 稍加整理并测试通过 阶段一 有规则的图片下载地址 之所以用Excel下载图片 主要是电脑上没有下载工具 于是找到以下代码 并稍加修改后
  • CUDA、CUDNN跑卷积神经网络报错CUDA error: CUBLAS_STATUS_EXECUTION_FAILED和CUDNN_STATUS_EXECUTION_FAILED

    笔者跑神经网络的时候遇到显存溢出问题 系统 Ubuntu 16 04 CUDA 10 0 130 CUDNN 7 6 4 38 Python 3 6 12 PYTORCH 1 2 TORCHVISION 0 4 卷积神经网络的代码用CPU跑
  • TypeScript 学习

    目录 TypeScript简介 一 TypeScript开发环境及编译的说明 二 TypeScript 基本类型 TypeScript简介 1 是javaScript的超集 2 对js进行了扩展 向js 中引入了类型的概念 并添加了许多新的
  • 【C++】模拟实现STL容器:vector

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 vector迭代器失效问题 1 Visual Stud
  • Scala安装教程(最详细教程)

    Scala安装教程 我们分别在Windows和ubuntu上安装Scala 但是在安装Scala之前有个前提是都要提前安装好JDK1 8以上的 如果没有安装请看Windows安装JDK和ubuntu安装JDK 一 Windows安装Scal
  • eclipse安装JAVA反编译插件

    eclipse安装JAVA反编译插件 1 Help Eclipse Marketplace 2 输入 Decompiler 搜索并安装此插件 3 或者输入 反编译 搜索并安装此插件 4 这里有几种不同的反编译插件工具的选择 可以先都选上 但
  • chatgpt赋能python:用Python编写手机APP的优势及方法

    用Python编写手机APP的优势及方法 随着移动互联网的快速发展 智能手机已经成为人们生活中不可缺少的一部分 越来越多的企业开始开发手机APP以便更好的服务用户 在开发手机APP的过程中 Python成为了一种备受关注的语言 本文将介绍P
  • Python基础之简单用户交互

    Python基础之简单用户交互 一 要求及目的 二 代码内容 三 学习总结 一 要求及目的 要求设计一个简单的计算程序 二 代码内容 简单计算 a input please input a first number b input plea
  • 常规键盘快捷键以及win10常用命令

    文章目录 常规键盘快捷键 win10常用命令 常规键盘快捷键 所有窗口最小化 win d 打开 我的电脑 win e 调出 运行 win r 全选 ctrl a 剪切 ctrl x 复制 ctrl c 粘贴 ctrl v 查找 ctrl f
  • python爬取唯品会商品信息

    目录 1 明确需求和抓包思路 2 发送请求 获取数据 3 解析数据 4 保存数据 5 最终效果 1 明确需求和抓包思路 目标 爬取唯品会中泳衣的商品信息 思路 点击F12打开抓包工具 gt 刷新页面 gt 搜索关键字找到我们想要的数据包 并

随机推荐

  • MIPI入门——DSI介绍(二)

    这一篇来简单的介绍一下MIPI DSI Video Mode的三种操作模式 Non Busrt Mode with Sync Pluses Non Burst Mode with Sync Events Burst Mode 其中Non B
  • 公司阿里云服务器被暴力破解

    公司阿里云服务器被暴力破解 公司云服务器跑了3年了 从来没改过密码 而且基本所有服务器密码都是同一个 只把公司IP添加白名单了 确实不严谨 但至少限制了连接源 突然就收到阿里云短信提醒被暴力破解了 有了下面画面 查看攻击地址和登录来源都是公
  • C++ bind与回调函数

    1 回调函数 注册回调函数里可以使用functional来统一接口 可以传入函数指针 lambda bind等 函数1 2 为一个模块 为回调函数 函数3为一个模块 为注册回调函数 形参为函数指针 注册回调函数的入参为函数指针 指向回调函数
  • 开发实践

    0x00 前言简述 描述 最近在研究app自动化测试相关资料 正好最近喜欢上了耍快手以及抖音 头条 我突发奇想能否自动的刷视频而不需要我们动手指 我想懒人就是这样炼成的 我作为一名运开 想到我们可以使用adb工具加上PowerShell或者
  • 基于HAL库的STM32单定时器多路输入捕获测量PWM的频率和占空比实现(状态机方式实现)

    目录 写在前面 先回顾下定时器的单路捕获PWM 多路捕获PWM的频率和占空比 状态机实现 我的思路 状态图 配置 给出示例代码 测试效果 写在前面 先有了这篇文章实现了单定时器的多通道测量频率 以外部时钟的方式可测量任意频率的方波 奈何不能
  • UIImage加载本地图片资源

    图片读取 根据是否将创建好的对象缓存入系统内存 有两类创建UIImage 对象的方法可选 UIImage 缓存 imageNamed 只需传入文件名 扩展名 可选 即可 不缓存 imageWithContentsOfFile 必须传入文件的
  • vmware克隆Centos6 网卡无法启动

    原因是以下三处mac地址不一致 1 使用dmesg grep eth 获得eth编号和MAC地址 2 cat etc udev rules d 70 persistent net rules 3 cat etc sysconfig netw
  • 背包问题学习笔记-完全背包

    题意描述 有 N 种物品和一个容量是 V 的背包 每种物品都有无限件可用 第 i 种物品的体积是 vi 价值是 wi 求解将哪些物品装入背包 可使这些物品的总体积不超过背包容量 且总价值最大 输出最大价值 输入格式 第一行两个整数 N V
  • c语言规定简单的变量做实参时它和对应行参,C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是。...

    根据规范载体形式的不同法律 语言规应形可将渊源法律分为 简单间 变量年 平高比国外先进水油耗 一 规划种方编制的各法中 投入于 分析法属产出 根据可供对各地区的研节水究量和水量 规划需水可减我国的节量6通过亿m水措施约少年 0年到2 下7的
  • android MediaPlayer 中的JNI总结

    1 在android media MediaPlayer cpp 中 定义fields静态变量 里面有两个重要的成员变量 context 用来保存创建的mediaplayer post event 用来将JNI层的事件回调给JAVA层 实现
  • 关于使用IAR软件stlink下载stm8程序失败问题

    以前一直使用IAR很正常 这次使用使用stlink下载 stlink莫名其妙的就不能下载了 断电 重启 有时候能用 有时候真的就不能用了提示信息如下图 Failed to initialize communcation with hardw
  • Nginx 配置TCP代理转发

    Nginx 配置TCP代理转发 使用Nginx 新版的 stream方式 实现TCP UDP代理转发 在Nginx安装了 stream 模块后 修改nginx conf 在主配置文件下 nginx conf 增加 stream配置 如 ng
  • VUE 中Element-ui 添加滚动条

  • C/C++:02 1/2. 类和对象

    文章目录 前言 1 类的定义和对象的创建 类的定义 创建对象 访问类成员 使用对象指针 2 类的成员变量和成员函数 成员函数的定义 类体和类外定义成员函数的区别 3 C 类成员的访问权限以及类的封装 成员的访问限定 类的封装 6 C 构造函
  • c++20特性(模块)

    看了c 白皮书之后 发现c 20有了很大的改变 写下一些其中的内容 模块 export指令可以使代码可以被import到另一个模块中 import指令可以使从另一个模块export出来的代码能够被使用 import的实体不会被隐式的再exp
  • 支付平台--网联详解

    支付清算体系是一个国家的金融基础设施 或说是公共服务 而提供这一服务的机构是银联 而现在是银联和网联 现在我国大体维持 结算 清算 二级制的支付体系 通俗的说 银行与商户 消费者之间为结算关系 而银行之间构成清算关系 这两个层次完成后 支付
  • 训练大模型时显存占用影响因素总结(以starcoderplus 15.5B为例)

    背景 实验室计算资源紧张 单卡最大显存是RTX 3090 24G 但是又要用大模型 指参数量达到10B 做实验 模型文件获取 大约60B https huggingface co bigcode starcoderplus tree mai
  • 2. 2019年《斯坦福大学CS330多任务和元学习》第2讲:多任务和元学习基础【中文字幕】

    2019年 斯坦福大学CS330多任务和元学习 第2讲 多任务和元学习基础 中文字幕 https www bilibili com video BV17a4y1J7eG 斯坦福大学切尔西 芬恩 Chelsea Finn 助理教授 http
  • 微星b560m mortar wifi 开机二检(开机灭了1秒后自动重启)

    微星b560m mortar wifi 开机二检 开机灭了1秒后自动重启 1 起因 为了照顾旧CPU 还想把内存扩容到64GB 就选择了DDR4的4条插槽的 B560M主板 都弄好之后 开机发现在按下电源键之后 通电自检后断电了大概2秒左右
  • ESLint(JavaScript代码校验)

    概要 关于JavaScript的代码校验 2016年5月以来大家一直使用jswatchdog 2018年4月以后 从运维的角度上来说 我们更推荐使用ESLint 关于ESLint的设置 我们更推荐有利于kintone自定义开发的eslint