EsLint新手入门须知

这次给大家带来eslint新手入门须知,eslint新手入门须知的注意事项有哪些,下面就是实战案例,一起来看一下。

介绍

  ESLint 是一个插件化的 javascript 代码检测工具,它可以用于检查常见的 JavaScript 代码错误,也可以进行代码风格检查,这样我们就可以根据自己的喜好指定一套 ESLint 配置,然后应用到所编写的项目上,从而实现辅助编码规范的执行,有效控制项目代码的质量。

安装

ESLint的安装:本地安装、全局安装

1、本地安装

$ npm install eslint --save-dev

登录后复制

生成配置文件

$ ./node_modules/.bin/eslint --init

登录后复制

之后,您可以运行ESLint在任何文件或目录如下:

$ ./node_modules/.bin/eslint index.js

登录后复制

index.js是你需要测试的js文件。你使用的任何插件或共享配置(必须安装在本地来与安装在本地的ESLint一起工作)。

2、全局安装

如果你想让ESLint可用到所有的项目,建议全局安装ESLint。

$ npm install -g eslint

登录后复制登录后复制

生成配置文件

$ eslint --init

登录后复制

之后,您可以在任何文件或目录运行ESLint

$ eslint index.js

登录后复制登录后复制

PS:eslint –init是用于每一个项目设置和配置eslint,并将执行本地安装的ESLint及其插件的目录。如果你喜欢使用全局安装的ESLint,在你配置中使用的任何插件都必须是全局安装的。

使用

1、在项目根目录生成package.json文件(配置ESLint的项目中必须有 package.json 文件,如果没有的话可以使用 npm init -y来生成

$ npm init -y

登录后复制

2、安装eslint(安装方式根据个人项目需要安装,这里使用全局安装

$ npm install -g eslint

登录后复制登录后复制

3、创建index.js文件,里面写一个函数。

function merge () {    var ret = {};    for (var i in arguments) {        var m = arguments[i];        for (var j in m) ret[j] = m[j];    }    return ret;}console.log(merge({a: 123}, {b: 456}));

登录后复制

执行node index.js,输出结果为{ a: 123, b: 456 }

$ node index.js{ a: 123, b: 456 }

登录后复制

使用eslint检查

$ eslint index.js

登录后复制登录后复制

Oops! Something went wrong! :(ESLint: 4.19.1.ESLint couldn't find a configuration file. To set up a configuration file for this project, please run:    eslint --initESLint looked for configuration files in E:websitedemo5js and its ancestors. If it found none, it then looked in your home directory.If you think you already have a configuration file or if you need more help, please stop by the ESLint chat room: https://gitter.im/eslint/eslint

登录后复制

执行结果是失败,因为没有找到相应的配置文件,个人认为这个eslint最重要的就是配置问题。

新建配置文件

  $ eslint --init

登录后复制

生成的过程中,需要选择生成规则、支持环境等内容,下面说明一些本人的生成选项

? How would you like to configure ESLint? Answer questions about your style? Are you using ECMAScript 6 features? Yes? Are you using ES6 modules? Yes? Where will your code run? Browser? Do you use CommonJS? Yes? Do you use JSX? No? What style of indentation do you use? Tabs? What quotes do you use for strings? Single? What line endings do you use? Windows? Do you require semicolons? No? What format do you want your config file to be in? JavaScript

登录后复制

生成的内容在.eslintrc.js文件中,文件内容如下

module.exports = {    "env": {        "browser": true,        "commonjs": true,        "es6": true    },    "extends": "eslint:recommended",    "parserOptions": {        "sourceType": "module"    },    "rules": {        "indent": [            "error",            "tab"        ],        "linebreak-style": [            "error",            "windows"        ],        "quotes": [            "error",            "single"        ],        "semi": [            "error",            "never"        ]    }};

登录后复制

  不过这个生成的额文件里面已经有一些配置了,把里面的内容大部分删除。留下个extends,剩下的自己填就可以了

 module.exports = {      "extends": "eslint:recommended"  };

登录后复制

eslint:recommended配置,它包含了一系列核心规则,能报告一些常见的问题。

重新执行eslint index.js,输出如下

  10:1  error  Unexpected console statement  no-console  10:1  error  'console' is not defined      no-undef✖ 2 problems (2 errors, 0 warnings)

登录后复制

Unexpected console statement no-console — 不能使用console
‘console’ is not defined     no-undef   — console变量未定义,不能使用未定义的变量
一条一条解决,不能使用console的提示,那我们就禁用no-console就好了,在配置文件中添加rules

module.exports = {    extends: 'eslint:recommended',    rules: {        'no-console': 'off',    },};

登录后复制

  配置规则写在rules对象里面,key表示规则名称,value表示规则的配置。
  然后就是解决no-undef:出错的原因是因为JavaScript有很多种运行环境,比如常见的有浏览器和Node.js,另外还有很多软件系统使用JavaScript作为其脚本引擎,比如PostgreSQL就支持使用JavaScript来编写存储引擎,而这些运行环境可能并不存在console这个对象。另外在浏览器环境下会有window对象,而Node.js下没有;在Node.js下会有process对象,而浏览器环境下没有。
所以在配置文件中我们还需要指定程序的目标环境:

module.exports = {    extends: 'eslint:recommended',    env: {        node: true,    },    rules: {        'no-console': 'off',    }};

登录后复制

再重新执行检查时,就没有任何提示输出了,说明index.js已经完全通过了检查。

配置

配置方式有两种:文件配置方式、代码注释配置方式(建议使用文件配置的形式,比较独立,便于维护)。
使用文件配置的方式:在项目的根目录下,新建一个名为 .eslintrc 的文件,在此文件中添加一些检查规则。

文件配置方式

env:你的脚本将要运行在什么环境中
Environment可以预设好的其他环境的全局变量,如brower、node环境变量、es6环境变量、mocha环境变量等

'env': {    'browser': true,    'commonjs': true,    'es6': true},

登录后复制

globals:额外的全局变量

globals: {    vue: true,    wx: true},

登录后复制

rules:开启规则和发生错误时报告的等级
规则的错误等级有三种:

0或’off’:关闭规则。 1或’warn’:打开规则,并且作为一个警告(并不会导致检查不通过)。 2或’error’:打开规则,并且作为一个错误 (退出码为1,检查不通过)。参数说明: 参数1 : 错误等级 参数2 : 处理方式

登录后复制

配置代码注释方式

使用 JavaScript 注释把配置信息直接嵌入到一个文件
示例:

忽略 no-undef 检查 /* eslint-disable no-undef */忽略 no-new 检查 /* eslint-disable no-new */设置检查 /*eslint eqeqeq: off*/ /*eslint eqeqeq: 0*/

登录后复制

配置和规则的内容有不少,有兴趣的同学可以参考这里:rules

使用共享的配置文件

  我们使用配置js文件是以extends: ‘eslint:recommended’为基础配置,但是大多数时候我们需要制定很多规则,在一个文件中写入会变得很臃肿,管理起来会很麻烦。

  新建一个文件比如eslint-config-public.js,在文件内容添加一两个规则。

module.exports = {    extends: 'eslint:recommended',    env: {        node: true,    },    rules: {        'no-console': 'off',        'indent': [ 'error', 4 ],        'quotes': [ 'error', 'single' ],    },};

登录后复制

然后原来的.eslintrc.js文件内容稍微变化下,删掉所有的配置,留下一个extends。

module.exports = {    extends: './eslint-config-public.js',};

登录后复制

  这个要测试的是啥呢,就是看看限定缩进是4个空格和使用单引号的字符串等,然后测试下,运行eslint index.js,得到的结果是没有问题的,但是如果在index.js中的var ret = {};前面加个空格啥的,结果就立马不一样了。

2:1  error  Expected indentation of 4 spaces but found 5  indent✖ 1 problem (1 error, 0 warnings)  1 error, 0 warnings potentially fixable with the `--fix` option.

登录后复制

  这时候提示第2行的是缩进应该是4个空格,而文件的第2行却发现了5个空格,说明公共配置文件eslint-config-public.js已经生效了。

  除了这些基本的配置以外,在npm上有很多已经发布的ESLint配置,也可以通过安装使用。配置名字一般都是eslint-config-为前缀,一般我们用的eslint是全局安装的,那用的eslint-config-模块也必须是全局安装,不然没法载入。

在执行eslint检查的时候,我们会经常看到提示“–flx”选项,在执行eslint检查的时候添加该选项会自动修复部分报错部分(注意这里只是部分,并不是全部

比如我们在规则中添加一条no-extra-semi: 禁止不必要的分号。

'no-extra-semi':'error'

登录后复制

然后,我们在index.js最后多添加一个分号

function merge () {    var ret = {};    for (var i in arguments) {        var m = arguments[i];        for (var j in m) ret[j] = m[j];    }    return ret;;}console.log(merge({a: 123}, {b: 456}));

登录后复制

执行eslint index.js,得到结果如下:

  7:16  error  Unnecessary semicolon  no-extra-semi  7:16  error  Unreachable code       no-unreachable✖ 2 problems (2 errors, 0 warnings)  1 error, 0 warnings potentially fixable with the `--fix` option.

登录后复制

然后我们在执行eslint index.js –fix就会自动修复,index.js那个多余的分号也就被修复消失不见了。

总结

以上是我在学习eslint整理的一些资料,不算太全面,对于像我这样的新手入门足够了

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

前端中排序算法实例详解

PromiseA+的实现步骤详解

以上就是EsLint新手入门须知的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2758113.html

(0)
上一篇 2025年3月8日 08:06:25
下一篇 2025年2月18日 07:11:50

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • vue项目关闭eslint校验

    eslint是一个javascript的校验插件,通常用来校验语法或代码的书写风格。这篇文章主要介绍了vue项目关闭eslint校验,需要的朋友可以参考下 简介eslint eslint是一个JavaScript的校验插件,通常用来校验语法…

    2025年3月8日 编程技术
    200
  • 怎样使用ESlint

    这次给大家带来怎样使用ESlint,使用ESlint的注意事项有哪些,下面就是实战案例,一起来看一下。 1. 什么是ESlint? ESLint 是一个ECMAScript/JavaScript 语法规则和代码风格的检查工具,它的目标是保证…

    2025年3月8日 编程技术
    200
  • js代码风格是怎样的?JavaScript代码风格的介绍

    本篇文章给大家带来的内容是关于js代码风格是怎样的?javascript代码风格的介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 1. 规范 为了约定大家的代码风格,在社区中诞生了一些比较规范的代码风格规范: Java…

    编程技术 2025年3月8日
    200
  • Node.js项目中如何安装和使用ESLint

    node.js项目中如何安装和使用eslint?本篇文章给大家介绍一下在 node.js 应用程序中使用 eslint的方法。 【推荐学习:《nodejs 教程》】 ESLint 是一个开源 JavaScript linting 实用程序,…

    2025年3月7日 编程技术
    200
  • 新手学习golang框架,应该从何处开始?

    golang 框架是构建健壮应用程序的强大工具。初学者可以选择 beego、echo 或 gin 等框架,并使用 go get 命令进行安装。创建项目后,理解路由至关重要,可以用路由器函数定义路由。处理程序响应 http 请求,在 gin …

    2025年3月1日
    200
  • Python新手们容易犯的几个错误总结

    python语言里面有一些小的坑,特别容易弄混弄错,初学者若不注意的话,很容易坑进去,下面我给大家深入解析一些这几个坑,希望对初学者有所帮助,需要的朋友可以参考学习,下面来一起看看吧。 前言 这篇文章主要给大家总结了关于学习Python的新…

    2025年2月27日
    200
  • 逆水寒手游新手入门快速升级攻略

    逆水寒手游新手入门指南各位新手玩家们,如果你刚踏入逆水寒手游的江湖,可能会对陌生的环境感到不知所措。别担心!php小编鱼仔在此为您总结了一份新手入门攻略,帮助您快速上手游戏,尽情畅享武侠世界的魅力。以下内容将详细解答新手玩家最关心的问题,包…

    2025年2月24日
    200
  • PHP框架新手入门指南,如何选择适合自己的?

    php框架提供了预构建的代码结构,用于简化web应用程序开发,具有一系列功能和好处。选择框架时应考虑性能、功能、易用性、社区支持和安全性。热门框架包括laravel(全面、功能丰富)、codeigniter(轻量级、易用)、symfony(…

    2025年2月18日
    200
  • 币圈入门软件有哪些?币圈新手入门软件top10盘点

    对于进入加密货币领域的初学者来说,选择合适的入门软件至关重要。本文整理了 10 款备受推崇的币圈入门软件,涵盖交易平台、储存和信息工具,旨在为新手提供全面的辅助。通过这些软件,新手可以了解加密货币知识、安全管理数字资产并便捷地进行交易。 对…

    2025年2月17日
    200
  • phpcms 域名绑定须知_绑定域名

    摘要:phpcms域名绑定须知提供了关于在phpcms系统中如何进行域名绑定的指导。它解释了必要的步骤和注意事项,确保用户能够正确地将他们的域名链接到phpcms网站,以便顺利访问和管理。 在数字化时代,网站的部署与运行离不开域名的正确绑定…

    服务器 2025年2月15日
    300

发表回复

登录后才能评论