加载中 ...

Solidity Linting和Formatting的使用教程

2019-07-17 20:45 编辑:币牛牛 来源:币源

以太坊开发人员社区开始开发一些非常棒的工具,让我们更加接近自动化的工作流和开发人员的“cockpit”,例如我们现在使用的比较成熟的语言:javascript或go。



其中有两个工具是触及了开发人员工作流程最核心的部分编写代码:



· linters自动分析代码是否存在可能的编程样式错误(常见示例:eslint for javascript)
· Formatters根据预定义的规则和缩进默认值自动格式化代码(例子:gofmt for go)



·我们在使用Truffle框架的repo的环境中涉及到这些工具,但是这些步骤可以适用于任何框架中。



Linter



在本教程中,我们将重点介绍solhint,不过我强烈建议您尝试一下ethlint。



Solhint



首先,确保您位于项目根目录中,然后使用NPM或Yarn添加solhint模块。



> npm install --save-dev solhint



配置Solhint



使用基本配置文件初始化solhint。



> ./node_modules/.bin/solhint init-config



你应该在项目的根目录中创建一个./solhint.json文件。这个文件指定了您希望solhint为哪个规则执行lint。solhint对安全规则、样式指南规则和最佳实践规则有着非常出色的覆盖。



一个很大的问题:默认情况下,很少有规则被启用。经过一些试验和错误后,我发现solhint:稍微好一些(与solhint相比:Solhint在文档中列出的默认值)。



我强烈建议您浏览一下规则列表并添加到您想要的./solhint.json。我个人发现安全规则和最佳实践非常有用。



{
"extends": "solhint:recommended",
"plugins": [],
"rules": {
"avoid-throw": false,
"avoid-suicide": "error",
"avoid-sha3": "warn"
}
}



Solhint ignores



与.gitignore类似,您可以获取solhint去忽略文件和文件夹



node_modules/
migrations/



Solhint脚本



编辑package.json以包含一个新脚本来运行Solhint。



"solhint": "./node_modules/.bin/solhint -f table contracts/**/*.sol"



上面的命令有几点需要注意:



· Solhint运行在与文件模式匹配的globs上。在上面,它运行在contract目录中的所有** / * .sol文件中
· -f表以表格形式显示结果。您可以选择其他选项(例如unix,tap)



Solhint动作



> npm run solhint



您可能会看到一堆错误,尤其是缩进和样式错误。您无需手动修复这些!我们的下一个工具(formatter)将对此有所帮助。



Formatter



Prettier是一款出色的工具,可根据预定义的样式指南自动格式化代码库。只需在团队层面上就规则达成一致,然后Prettier将以相同的方式自动编码每个人的代码。



prettier solidity是与solhint一起使用的solidity文件的prettier。它有助于自动修复solhint发现的许多错误,特别是像缩进和代码样式这样简单的错误。



安装Prettier



> npm install --save-dev prettier prettier-plugin-solidity



配置Prettier



你可以使用.prettierrc文件配置prettier。大多数规则都是使用solhint现成的,但您可能需要添加或关闭其中的一些规则。我建议你保持规则尽量简短。



您可以阅读Prettier文档以获取更多详细信息。您还可以在.prettierignore中指定要忽略的文件。



{
"printWidth": 100,
"singleQuote": true
}



配置Solhint使用Prettier



安装solhint-plugin-prettier,这使得solhint可以很好地使用prettier solidity。



> npm install --save-dev solhint-plugin-prettier



然后更新./solhint.json以将Prettier添加为插件和规则。



{
"extends": ["solhint:recommended"],
"rules": {
"prettier/prettier": "error",
"avoid-throw": false,
"avoid-suicide": "error",
"avoid-sha3": "warn"
},
"plugins": ["prettier"]
}



运行Prettier-Solidity



将prettier命令添加到package.json中。--write标志将格式化并覆盖现有文件。根据prettier文档,最好先提交代码。



"prettier:solidity": "./node_modules/.bin/prettier --write contracts/**/*.sol"



然后在输入命令行



> npm run prettier:solidity

"hooks": {
"pre-push": "npm run prettier:solidity"
}
}
}

现在,每当团队中的任何开发人员推到Github时,formatter都会运行。

关键词:比特币新闻 币牛牛

转载自比特币新闻网(www.btc268.com),提供比特币行情走势分析与数字货币投资炒币最新消息。

原文标题:Solidity Linting和Formatting的使用教程

原文地址:http://www.btc268.com/news/qkl/13625.html

本文来源:币源编辑:币牛牛

本文仅代表作者个人观点,与本网站立场无关。

本网站转载信息目的在于传递更多信息。请读者仅作参考,投资有风险,入市须谨慎!

'); })();