赞
踩
eslint 是一个代码检查工具包,用来检查代码的规范。
而相比之下,prettier 是一个代码格式化工具。
解决代码风格不一致的问题
可以实现自动修复一些结构、风格问题
默认是只修复 js 语法的,其他的语言和框架需要配置
高灵活度、配置自由
对于团队来说,统一项目的代码风格,降低维护成本
减少 git 提交
避免低级错误
…
1.检查 nodejs 版本
首先检查自己的 node 版本是否支持
前提条件:内置 SSL 支持的 nodejs 版本(
^12.22.0
、^14.17.0
或>=16.0.0
)Node.js 发行版
之所以需要 node ,是因为 eslint 是调用的 node 来检查我们的代码:
2.安装
pnpm add eslint
初始化
pnpx 会去 bin 中寻找可执行的脚本
pnpx eslint --init
终端
PS D:\Projects\fontend\library-management> pnpx eslint --init .../pnpm/storeDir/v3/tmp/dlx-6452 | +97 ++++++++++ .../pnpm/storeDir/v3/tmp/dlx-6452 | Progress: resolved 97, reused 97, downloaded 0, added 97, done You can also run this command directly using 'npm init @eslint/config'. Need to install the following packages: @eslint/create-config@0.4.3 Ok to proceed? (y) y √ How would you like to use ESLint? · style √ What type of modules does your project use? · esm √ Which framework does your project use? · vue √ Does your project use TypeScript? · No / Yes √ Where does your code run? · browser √ How would you like to define a style for your project? · guide √ Which style guide do you want to follow? · standard √ What format do you want your config file to be in? · JSON Checking peerDependencies of eslint-config-standard@latest Local ESLint installation not found. The config that you've selected requires the following dependencies: eslint-plugin-vue@latest eslint-config-standard@latest eslint@^8.0.1 eslint-plugin-import@^2.25.2 eslint-plugin-n@^15.0.0 eslint-plugin-promise@^6.0.0 √ Would you like to install them now? · No / Yes √ Which package manager do you want to use? · pnpm Installing eslint-plugin-vue@latest, eslint-config-standard@latest, eslint@^8.0.1, eslint-plugin-import@^2.25.2, eslint-plugin-n@^15.0.0, eslint-plugin-promise@^6.0.0 WARN deprecated sourcemap-codec@1.4.8: Please use @jridgewell/sourcemap-codec instead Packages: +89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Progress: resolved 285, reused 198, downloaded 65, added 89, done dependencies: - eslint ^8.40.0 devDependencies: + eslint ^8.40.0 + eslint-config-standard 17.0.0 + eslint-plugin-import 2.27.5 + eslint-plugin-n 15.7.0 + eslint-plugin-promise 6.1.1 + eslint-plugin-vue 9.12.0 Done in 2.1s Successfully created .eslintrc.json file in D:\Projects\fontend\library-management
目录中出现根据我们的选择而生成的配置文件:
如果你安装的过程中出错,请查看你的 es 的版本,并且尝试降低你的 es 的版本。
在 vscode 中使用,eslint 会丧心病狂地检查我们的代码。
1.安装插件
注意:插件中并没有含有 eslint 核心代码,而是在项目中寻找 eslint 库。
2.使用命令行
pnpx eslint 文件
一般我们不会这么使用。
3.关于保存时格式化
在 setting.json
中配置:
{
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
}
我们将 eslint 的配置编写在项目的目录中
eslint 会按照以下的顺序查找:
.eslinttc.js
.eslintrc.yaml
.eslintrc.json
eslintConfig
字段在目录中,只有一个配置文件会生效,常用的就是 .eslintrc.js/json
,还是建议使用 JavaScript。
eslint 配置的主要内容包括:
eslint 默认不开启任何的环境,可以在 env
字段中使用 "env_name":true
的方式开启,你甚至可以同时开启多个环境。
{
"env": {
"broswer":true,
"node":true,
"es6":true,
"commonjs":true,
}
}
开启环境之后,使用 eslint 就可以正常解析代码中的全局变量:
比如如果没有声明 broswer 环境,就会对 window 报错,因为你没定义啊。
甚至 console 啥的都会报错 :)
但是,如果你注释了 broswer ,依然是没有报错,你可以看一下你是不是使用的 standard 标准。
也就是
这个标准中自带着一些规范,比如他允许你使用 window。
还有其他的标准,比如:[eslint:all],这样就会将所有的标准都加上,代码会迷失在血泊里。
还有 [eslint:recommend],就会推荐的规范。会比全部的相对好一点。
我们推荐使用 standard 的那一套。
我们使用 js 进行开发的时候不可避免地会使用到第三方的包,如果第三方的包也使用了全局变量,我们是不能认为我们项目有这个全局变量。
所以我们可以使用 global
来管理代码中的全局变量
可以将其设置为 true/false/off
即可以读取并且更改,读取但是不能更改。
{
"globals": {
"$":"true",
}
}
off
的作用是用来关闭 env
带来的全局变量,因为有的语法过新,我们可以将其关闭,这样 eslint 就会对于这过新的语法进行报错。
{
"env":{
"es6": true
},
"globals":{
"Promise":"off"
}
}
{ "parserOptions":{ /* ecmaVersion: 指定 ECMA 语法版本 * 取值: * - "latest": 使用最新版本,现在 (2021) 等同于 12 * - 版本号:3, 5(默认), 6, 7, 8, 9, 10, 11, 12 * - 年份命名法:2015(=6), 2016(=7), 2017(8) ... */ "ecmaVersion": "latest", /* sourceType: 脚本类型,普通脚本 或 ES 模块脚本 * 取值:"script"(默认) | "module"(ES 模块脚本) */ "sourceType":"module", /* ecmaFeatures: 支持的特性语法*/ "ecmaFeatures": { // 支持在全局使用 return "globalReturn": true, // 默认使用严格模式(ES 5 或 以上) "impliedStrict": true, // 支持 JSX 语法 "jsx": true } } }
注意如果你开启了更高版本的 ecma 版本,需要更改环境,不然是没有效果的。
eslint 默认的是 expree 解释器,你可以通过 parser 字段设置其他的解释器,如果项目中用到了 ts、react、vue 等,就需要与之对应的解释器。
为了正确的解析代码。
eslint 检查的规范,我们可以选择第三方规范:
具体配置的时候我们可以简写:
我们可以使用 extends 中的规范来规范我们的代码。但是我们也可以自己来配置。
这时候我们在初始化的时候需要选择自己的文件。
0:关闭
1:警告
2:报错
{
"rule": {
"semi":0/1/2
}
}
注意:这里的规范,如果在你的 extends 中的第三方规范也有,是会覆盖的,也就是说优先级更高。
本质其实就是函数,我们将代码输入(代码会被转换成用于检查的格式),然后代码检查返回结果。
总计有两百多个。
这些规范,包含了几乎开发活动中可能遇到的各种各样的问题。
我们可以使用的规范包:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。