当前位置: 首页 > news >正文

区块链——代码格式检查(prettier、solhint)

一、引入依赖

// 导入prettier prettier-plugin-solidity
yarn add --dev prettier prettier-plugin-solidity
yarn add --dev solhint

二、创建.prettierrc文件

{"tabWidth": 2,"semi": false,"useTabs": false,"singleQuote": false
}

三、创建忽略文件.prettierignore文件

node_modules
package.json
img
artifacts
cache
coverage
.env
.*
README.md
coverage.json

三、prettierrc配置解释

.prettierrc 文件(或其 JavaScript 版本 .prettierrc.js)是用于配置 Prettier 代码格式化工具的规则文件。Prettier 是一个流行的代码格式化工具,旨在通过提供一致的代码风格来简化开发人员的工作流程。以下是 .prettierrc 文件中一些常见的配置项及其含义:

  • printWidth
    类型:整数
    默认值:80
    含义:指定一行代码的最大字符数,超过此数则会自动换行。

  • tabWidth
    类型:整数
    默认值:2
    含义:指定一个制表符(Tab)应该等于多少个空格。

  • useTabs
    类型:布尔值
    默认值:false
    含义:是否使用制表符(Tab)进行缩进,而不是空格。

  • semi
    类型:布尔值
    默认值:true
    含义:是否在语句末尾添加分号。

  • singleQuote
    类型:布尔值
    默认值:false(在 .prettierrc.js 示例中可能是 true,但默认是 false)
    含义:是否使用单引号而不是双引号。

  • quoteProps
    类型:字符串
    默认值:“as-needed”
    含义:属性名是否使用引号,可选值为 “as-needed”(必要时加引号)或 “consistent”(保持一致性)。

  • trailingComma
    类型:字符串
    默认值:“none”
    含义:对象或数组最后一个元素后是否加逗号,可选值为 “none”(不加逗号)、“es5”(在ES5中有效的地方加逗号)、“all”(所有地方都加逗号)。

  • bracketSpacing
    类型:布尔值
    默认值:true
    含义:对象字面量的括号间是否加空格。

  • jsxBracketSameLine
    类型:布尔值
    默认值:false
    含义:在JSX中,是否将 ‘>’ 符号与标签的最后一行末尾对齐。

  • arrowParens
    类型:字符串
    默认值:“avoid”
    含义:是否总是给箭头函数的参数加上括号,可选值为 “avoid”(只在需要时添加括号)或 “always”(总是添加括号)。

  • endOfLine
    类型:字符串
    默认值:“lf”
    含义:换行符的样式,可选值为 “lf”(\n)、“crlf”(\r\n)、“cr”(\r)或 “auto”(根据文件中的第一行决定)。

  • embeddedLanguageFormatting
    类型:字符串
    默认值:“auto”
    含义:是否格式化内嵌的代码语言,可选值为 “auto”(自动)、“off”(不格式化内嵌的代码语言)、“on”(始终格式化内嵌的代码语言)。

  • proseWrap
    类型:字符串
    默认值:“preserve”
    含义:在 Markdown 中,是否要换行符折行,可选值为 “preserve”(保持原样)、“always”(始终折行)、“never”(从不折行)。

四、创建.solhint.json配置文件

{"extends": "solhint:recommended", // 继承推荐的规则集"rules": {"avoid-sha3": "warn", // 警告使用 SHA3 函数"compiler-version": ["error", "^0.8.0"], // 错误:编译器版本必须为 0.8.x"no-unused-vars": "off", // 禁用未使用变量的规则"no-global-import": "off", // 禁止全局导入"func-visibility": ["warn",{"ignoreConstructors":false}] // 函数的可见性,构造函数排除},"plugins": [] // 目前没有加载任何插件
}

五、创建.solhintignore,设置需要忽视的文件

六、在命令行中,使用yarn solhint contract/*.sol来查看代码是否合规

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • OD C卷 - 密码输入检测
  • Linux操作系统 -socket网络通信
  • 深入理解计算机系统 CSAPP 家庭作业11.10
  • 【资料分享】2024钉钉杯大数据挑战赛A题思路解析+代码演示
  • vue 当前页面刷新 provide + inject
  • pytorch backbone
  • 代理协议解析:如何根据需求选择HTTP、HTTPS或SOCKS5?
  • Win11+Anaconda+VScode:mmpose环境配置与基本使用
  • Springboot @Validate @Valid 基于复杂嵌套对象的参数校验示例
  • SQL 基础知识
  • Springboot 多数据源事务
  • 代码随想录算法训练营day22 | 77. 组合、216.组合总和III 、17.电话号码的字母组合
  • kettle从入门到精通 第八十一课 ETL之kettle kettle中的json对象字段写入postgresql中的json字段正确姿势
  • CTF之网站被黑
  • Unity 之 【Android Unity 共享纹理】之 Android 共享图片给 Unity 显示
  • 【mysql】环境安装、服务启动、密码设置
  • Babel配置的不完全指南
  • CSS 提示工具(Tooltip)
  • Javascript设计模式学习之Observer(观察者)模式
  • Java超时控制的实现
  • js 实现textarea输入字数提示
  • MySQL数据库运维之数据恢复
  • nginx 负载服务器优化
  • Spring Boot MyBatis配置多种数据库
  • Swift 中的尾递归和蹦床
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 基于axios的vue插件,让http请求更简单
  • 力扣(LeetCode)21
  • 浅谈web中前端模板引擎的使用
  • 限制Java线程池运行线程以及等待线程数量的策略
  • ionic异常记录
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​Benvista PhotoZoom Pro 9.0.4新功能介绍
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​必胜客礼品卡回收多少钱,回收平台哪家好
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (代码示例)使用setTimeout来延迟加载JS脚本文件
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (九)One-Wire总线-DS18B20
  • (论文阅读30/100)Convolutional Pose Machines
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (四)c52学习之旅-流水LED灯
  • (五)网络优化与超参数选择--九五小庞
  • (转)德国人的记事本
  • (状压dp)uva 10817 Headmaster's Headache
  • .NET CORE 第一节 创建基本的 asp.net core
  • .net core使用ef 6
  • .NET Core中的去虚
  • .Net MVC4 上传大文件,并保存表单