You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使SolHint 4.5.4在pre-commit中正常显错及npm命令失效原因

问题解决:pre-commit中运行SolHint 4.5.4的两个问题

问题①:修改Shell脚本使其在pre-commit中显示彩色错误/警告且不生成文件

按以下步骤调整Shell脚本即可解决:

  • 强制开启颜色输出:pre-commit默认会禁用终端颜色,在脚本里设置环境变量FORCE_COLOR=1,强制SolHint输出彩色内容
  • 直接输出到终端:不要让脚本生成任何文件,直接调用solhint并让输出直接流向终端(pre-commit会自动捕获并展示)
  • 保留退出码:让脚本返回solhint的执行退出码,确保pre-commit能正确判断检查结果

示例脚本(保存为solhint-lint.sh):

#!/bin/bash
# 强制开启颜色输出
export FORCE_COLOR=1
# 运行solhint,替换为你的Solidity文件路径
solhint contracts/**/*.sol
# 返回solhint的退出码
exit $?

在.pre-commit-config.yaml中配置这个脚本:

repos:
-   repo: local
    hooks:
    -   id: solhint-lint
        name: SolHint Linter
        entry: ./solhint-lint.sh
        language: script
        files: \.sol$

问题②:npm run solhint提示缺少脚本的原因及解决

错误核心原因是你的package.json里未配置名为solhint的npm脚本,解决步骤:

  1. 打开项目根目录的package.json,找到scripts字段
  2. 添加solhint脚本,指定solhint的执行命令,示例:
{
  "scripts": {
    "solhint": "solhint 'contracts/**/*.sol'",
    "lint:sol": "solhint --fix contracts/**/*.sol" // 你之前的lint:sol用了--fix参数,会自动修复缩进等可修复问题,因此不显示错误列表
  }
}
  1. 确保SolHint是本地安装到项目的(而非仅全局安装),未本地安装则执行:
npm install solhint --save-dev

内容的提问来源于stack exchange,提问作者a.t.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 10:17:16