以太坊开发人员社区开始开发一些非常棒的工具,让我们更加接近自动化的工作流和开发人员的“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
Git Hooks(可选) —- 编译者/作者:不详 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
Solidity Linting和Formatting的使用教程
2019-07-18 不详 来源:网络
LOADING...
相关阅读:
- DeFi三巨头 社区文化谈2020-07-30
- 七哥本周币圈工作小结(0316-0322)2020-07-30
- 比特币突破$ 11K,Stablecoin链上活动激增2020-07-30
- 以太坊领跑大盘资产,而小盘走低2020-07-30
- 分散式衍生品交易所内射协议为即将到来的主网筹集了260万美元的新资2020-07-30