前言
Node.js 作为一种轻量级的后端 JavaScript 运行环境,其轻便、高效和易于上手的特点被众多开发者青睐。但是,尽管代码编写非常灵活,但代码风格还是需要统一的。否则,会导致后期维护非常困难,代码可读性也变得很差。对于一个项目而言,有一个好的代码规范可以提高开发效率,简化协作流程,让代码更易于维护。
本文将介绍使用 ESLint 来统一 Node.js 项目的代码风格,让项目在写作阶段就能保持高度的一致性。
关于 ESLint
ESLint 是一个插件化的 JavaScript 语法检测工具,而且它可以扩展任何的规则。它使用 Espree 解析器,通过 AST 来分析代码中的语法并提供一个关于代码中可能的问题的报告。使用者可以自定义规则,ESLint 是一个非常灵活且配置强大的工具,可以帮助开发者编写规范且易于维护的代码。
ESLint 环境搭建
安装
全局安装 ESLint:
npm install -g eslint
配置
首先,需要在项目根目录下安装配置文件,可以通过如下命令来初始化:
eslint --init
根据提示完成配置文件的安装。当被要求选择使用哪种格式时,我通常选择 JSON
。安装完毕后,根目录下会出现一个名为 .eslintrc.json
的文件(环境会根据您的选择而定)。在该文件中配置规则,以及添加或删除需要或不需要检查的规则。
-- -------------------- ---- ------- - ------ - ------- ----- ----------- ----- ------ ----- ---------- ---- -- ---------- - -------------------- -- ---------------- - -------------- ---- -- -------- - ------- --------- ---------- --------- --------- --------- - -
在上述配置文件中,env
对象声明了项目要用到的环境,例如 node
、commonjs
、es6
和 browser
。extends
字段用来声明需要继承哪些已有的规则,这里我采用的是 ESLint: Recommended
。parserOptions
字段用来配置当前项目可使用的 ECMAScript 版本等。rules
字段用来声明检测代码时需要应用的规则。
规则可以被配置成三种级别:"off"
、"warn"
、"error"
。分别代表了不使用规则、使用规则但是不影响编译、使用规则并且会停止编译。在上述代码中,semi
表示是否需要分号,quotes
表示引号风格等等。
使用
使用如下命令可以检查项目代码和规则是否一致:
eslint file.js
也可以检查整个项目:
eslint "**/*.js"
这些命令可以将要修复的规则直接展示在控制台上,避免覆盖现有的文件并得到任何可能发生的恶意修改。
ESLint 的插件与扩展规则
ESLint 已经预装了很多规则,但测试或开发中可能也遇到一些额外的限制或规则,以确保代码的质量、可读性和功能性。ESLint 功能非常强大,可以提供您需要的所有工具来处理问题,从而您可以创建符合标准的代码。
eslint-config-standard
eslint-config-standard 是一个非常流行的 JavaScript 代码风格规范,它可以使项目的代码风格更加统一一致。它还附带了一些有用的插件和增强,可以让开发者自动修复代码中的一些格式问题,例如:
npm install --save eslint-config-standard eslint-plugin-standard eslint-plugin-promise eslint-plugin-import eslint-plugin-node
安装完成后,可以将 .eslintrc.json
中的 extends
值改为:
"extends": [ "standard" ]
eslint-plugin-jest
eslint-plugin-jest 是一个适用于 Jest 测试框架的 ESLint 插件,可以检查 Jest 测试中的问题。例如,测试名称不能以 .skip
结尾,需使用 RGIN_IGNORED 应忽略。
npm install --save-dev eslint-plugin-jest
然后,在 .eslintrc.json
文件中添加 "plugins": ["jest"]
,使用 "extends": ["plugin:jest/recommended"]
替换原来的 extends
声明,这样就可以启用 Jest 插件了。
代码示例
我们现在就来看一个使用 ESLint 的 Node.js 项目示例(展示使用最佳实践和最新的技术中)。这是一个简单的 app.js
文件,它将我们的 express 服务器实例化并监听一个端口。
-- -------------------- ---- ------- ----- ------- - ------------------ ----- --- - --------- ----- ---- - ---- ------------ ----- ---- -- - ---------- -------- --- ------- -- -- ---------------- -- -- - ------------------- ------- -- ---- --------- --
使用 ESLint 检查这个文件,会发现存在一个未使用的声明 (express)。下面演示未使用 let express = require('express')
会失败的代码。ESLint 将检测到该错误并返回以下结果:
$ eslint app.js 3:1 error 'express' is defined but never used no-unused-vars ✖ 1 problem (1 error, 0 warnings)
在这种情况下,最简单的解决方案是将爱心移除或将其分配给变量:
require('express')
或
const express = require('express')
完整示例代码在下面:
-- -------------------- ---- ------- - ------ - ------- ---- -- ---------------- - -------------- --- ------------- -------- -- ---------- - ------ -- ---------- - --------------------- ------------------------- -- -------- - ----------------- -------- ------- --------- --------- --------- --------- ---------- --------------- --------- -------- - -
结论
在本文中,我们已经学习了如何使用 ESLint 来规范化 Node.js 项目代码风格。我们已熟悉了 ESLint 的安装和配置,并学习和了解了如何在规则中添加默认和自定义规则。我们也看到了一些流行的插件,例如 eslint-plugin-jest
,以及如何通过使用 eslint-config-standard
来规范化代码风格。为了让您的项目保持高度一致性,强烈建议您在开发过程中使用 ESLint 进行规范化。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67168fefad1e889fe21d0508