前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一文了解Lint

一文了解Lint

作者头像
希里安
发布2023-10-30 19:10:59
2990
发布2023-10-30 19:10:59
举报
文章被收录于专栏:希里安希里安

昨日本该更新文章,是围绕前后端模块的(因为前两天是按计划写linux以及网络模块)。但昨日实在没想出要写什么文章, 心态处在一个尴尬的境地,简单的知识点觉得没必要搬运,但是深入的东西不是花个一天半天就能写的出来,况且现在也有不少朋友关注我,写文章得认真对待,左思右想干脆就没写了。

今天转念一想,还是结合自己的项目,遇到什么写什么,不要觉得简单就不写,能把简单的东西写好也算进步(自我安慰中)。有深度有价值的文章还需要不断地沉淀自己才能达到,还是要沉下心。大家是否有同感呢,欢迎交流。

### lint背景

lint 是源代码静态分析工具的统称。它通过分析源代码本身的错误、不规范之处,在不运行代码的情况下检测出潜在问题。

lint 工具主要有以下作用:

1. 检查语法错误、拼写错误、不规范用法等,提高代码质量和健壮性。

2. 统一代码风格和规范,提高代码可读性。

3. 检测安全漏洞、潜在 bug 等,减少未来问题。

4. 提供可靠的自动化代码检查,辅助代码审查。

lint 最初是(贝尔实验室1979年发布[1] )Unix 的一个实用程序,在C语言环境中开发的,用于分析 C 语言源代码,检查可能导致程序运行错误或不规范的构造。

例如由Gimpel Software公司开发维护的PC-lint:https://pclintplus.com/,用来检查代码是否遵循 MISRA C(一套 C 语言代码规范)。

后来,lint 这个概念演变为更广义的源代码分析工具,用于检查各种语言和格式的代码规范、错误和潜在问题。已经扩展到了其他编程语言,如Java、JavaScript、Python等。

### 理念

lint的理念和目的是使用静态分析提高代码质量与健壮性。

到这应该明白作为程序员我们都应该学习并运用适合自己语言和项目的 lint 工具。

### 好处

具备基本工程素养的同学都会注重编码规范,而代码风格检查(Code Linting,简称 Lint)是保障代码规范一致性的重要手段。[2]

遵循相应的代码规范有以下好处

- 较少 bug 错误率

- 高效的开发效率

- 更高的可读性

### 主流lint工具

1. ESLint:由 JS Foundation 维护,用于 JavaScript,支持 Vue、React 等框架。

代码语言:javascript
复制
    官网:
    https://www.eslint.org
    快速开始:
        npm init @eslint/config

2. stylelint:由 stylelint 组织维护,用于 CSS/SCSS 等样式语言

代码语言:javascript
复制
官网:
    https://stylelint.io/


    快速开始:
        1. npm init stylelint
        2. npx stylelint "**/*.css"

3. Pylint:由 pylint developers 维护,用于 Python 语言

代码语言:javascript
复制
官网:
    https://pylint.readthedocs.io/en/stable/

    快速开始:
        pip install pylint
   

4. Go lint:由 Go 团队维护,用于 Go 语言

代码语言:javascript
复制
地址:
    https://github.com/golang/lint
    
    快速开始:
        go get -u golang.org/x/lint/golint
    不过此仓库目前已经停止更新了

和goformat有什么区别:

golint是一个代码检查工具,用于检查Go代码中的语法和风格问题。它可以帮助开发者遵循Go语言的最佳实践,提高代码质量和可读性。

goformat是一个代码格式化工具,用于自动化地格式化Go代码。它可以帮助开发者保持代码的一致性和可读性。

5. Cpplint:由 Google 开发并开源,用于C/C++ 语言

代码语言:javascript
复制
地址:
    https://github.com/cpplint/cpplint
    
    快速开始:
        $ pip install cpplint

6. PHP_CodeSniffer:由 PHP_CodeSniffer 项目维护,用于 PHP

代码语言:javascript
复制
地址:
    https://github.com/squizlabs/PHP_CodeSniffer

7. SonarLint:支持多种语言的lint工具,可以检查代码中的质量问题,如安全漏洞、代码重复、代码规范等。

代码语言:javascript
复制
官网:
    https://www.sonarlint.org/
    
    #没用过所以不知道怎么快速开始

8. Checkstyle:heckstyle 是最流行的 Java lint 工具,用于检查 Java 代码规范和风格。它可以定制化检查。

代码语言:javascript
复制
官网:
    https://checkstyle.sourceforge.io

### 使用

这里以eslint为例:

1.安装eslint

代码语言:javascript
复制
npm install eslint --save-dev

2.初始化eslint配置文件

代码语言:javascript
复制
./node_modules/.bin/eslint --init

3.配置eslint

在项目根目录下创建.eslintrc.js文件,添加以下内容:

代码语言:javascript
复制
module.exports = {
  root: true,
  env: {
    node: true,
  },
  extends: [
    'plugin:vue/essential',
    'eslint:recommended',
  ],
  parserOptions: {
    parser: 'babel-eslint',
  },
  rules: {
    'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
    'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
  },
};

4.在项目中使用eslint

在项目根目录下创建.eslintignore文件,添加以下内容:

代码语言:javascript
复制
node_modules/
dist/
Dockerfile
...

在package.json文件中添加以下内容:

代码语言:javascript
复制
"scripts": {
  "lint": "eslint src"
},

运行以下命令:

代码语言:javascript
复制
npm run lint

即可使用eslint检查项目中的代码。

也可以,前提是全局安装了eslint

代码语言:javascript
复制
eslint yourfile.js

临时运行:

代码语言:javascript
复制
npx eslint yourfile.js

因为我的ts是最新版本,有如下报错,看样子还得回退ts版本:

代码语言:javascript
复制
WARNING: You are currently running a version of TypeScript which is not officially supported by @typescript-eslint/typescript-estree.


You may find that it works just fine, or you may not.


SUPPORTED TYPESCRIPT VERSIONS: >=3.3.1 <5.1.0


YOUR TYPESCRIPT VERSION: 5.1.3


Please only submit bug reports when using the officially supported version.

---

参考:

[1]: https://zh.wikipedia.org/wiki/Lint

[2]: https://doc.vvbin.cn/dep/lint.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 希里安 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云代码分析
腾讯云代码分析(内部代号CodeDog)是集众多代码分析工具的云原生、分布式、高性能的代码综合分析跟踪管理平台,其主要功能是持续跟踪分析代码,观测项目代码质量,支撑团队传承代码文化。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档