
原站网页截图,页面可能随时间更新。
Solhint 面向使用 Solidity 编写智能合约的开发者,通过命令行分析源代码并输出检查结果。它既可用于单个文件,也可处理项目目录中的多个文件,还能结合配置文件、编辑器集成或提交前检查流程使用。
用途与适用场景
Solhint 的核心用途是检查 Solidity 代码,覆盖安全规则和风格指南规则,同时提供最佳实践规则。它适合在智能合约项目开发过程中发现代码问题、统一项目编码约定,并在提交代码前进行自动检查。对于需要批量检查 contracts 目录、单独检查某个合约文件,或希望把检查接入 pre-commit 流程的场景,都可以使用 Solhint。项目也提供官方 Docker 镜像,并支持多种编辑器或开发环境集成。
准备与上手
使用前需要准备 Node.js 的 npm 环境,并通过 npm 全局安装 Solhint。安装完成后,可以使用版本命令确认工具是否可用。项目首次配置时,可运行初始化命令生成 .solhint.json 文件,该文件会启用推荐规则。随后把一个或多个文件路径或 Glob 表达式交给 Solhint,即可检查单个 Solidity 文件或目录中的文件。直接运行不带参数的命令,可以查看命令行帮助信息。
配置项目规则
Solhint 使用 .solhint.json 配置检查行为。配置可以继承 solhint:recommended 规则集,也可以分别设置规则等级,例如将某项规则设为 error 或 warn。项目可以在不同目录放置同名配置文件,越接近被分析文件的配置优先级越高;未被覆盖的根目录规则仍可继续生效。还可以通过 .solhintignore 排除文件,语法与 .gitignore 相同,并支持否定规则。对于特定代码行或代码区域,也能使用源代码注释临时关闭全部检查或指定规则。
主要功能与输出
Solhint 支持多种报告格式,包括 stylish、table、tap、unix、json、compact 和 sarif,也可以限制允许出现的警告数量,或使用 quiet 模式仅报告错误。检查结果能够保存到当前目录的带时间戳报告文件中。工具提供 --fix 选项,可自动修复部分已支持的问题,例如部分命名、引号、控制台调用及旧式写法相关规则。启用缓存后,未发生内容或有效配置变化的文件可以跳过重复分析,并可通过参数指定缓存位置。Solhint 还支持从标准输入读取代码、列出当前配置覆盖的规则,以及加载插件和自定义插件路径。
可确认的限制
自动修复并不覆盖所有检查规则,目前只对官网列出的部分规则生效,因此其他问题仍需根据报告手动处理。缓存依赖文件内容和有效配置的哈希;如果配置新增规则而文件本身未变化,相关文件可能不会重新分析,需要移除缓存选项后再检查。插件加载失败时,Solhint 会发出警告并继续使用核心规则及其他有效插件。官网还标注 solhint:default 配置自 5.1.0 起已弃用,新的配置应优先考虑推荐规则集。
Solhint 可以只检查一个 Solidity 文件吗?
可以。将该文件路径作为命令参数传入即可进行单文件检查。
是否可以忽略项目中的部分文件?
可以。默认使用 .solhintignore,也可以通过 --ignore-path 指定其他忽略文件,并使用与 .gitignore 相同的语法。