21

到目前为止,我发现了这篇博客文章:是时候使用 Swift 包管理器了,它建议将 SwiftLint 和其他工具与Package.swift.

我能够向包文件添加依赖项,成功构建和测试,但 SwiftLint 从未警告我语法违规。

在我们在 Xcode 项目中使用此构建阶段步骤之前:

if which swiftlint >/dev/null; then
swiftlint
else
echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi

这篇文章建议采用Komondor,如果没有 PackageConfigs,它本身就没有。这个想法是在提交期间运行 SwiftLint 命令。我试图添加这两个项目,但无法在合理的时间内让它工作。在提交期间,我看到如下警告:

非法指令:4 $komondor run pre-commit

这对于 Swift Package Manager 来说还处于早期阶段,互联网上几乎没有任何信息。

理想情况下,我希望有任何解决方案允许我们的团队自动化 SwiftLint,理想情况下不需要添加 22 个依赖项、配置文件和需要动态库。

4

1 回答 1

4

Swift 中的一项名为Package Manager Extensible Build Tools ( SE-0303 ) 的提案已经实施,截至 2021 年 10 月,该提案在尚未发布的Swift 5.6中可用。

一种新的目标类型plugin(与executable和一起library)将可用于在构建期间配置命令。这意味着 SwiftLint 需要做一些工作才能成为 Swift 包插件。SwiftLint 作者可以实现一个包插件,在构建之前创建一个命令来运行 Swiftlint。


我将在此提案实施以及 SwiftLint 支持可扩展构建工具时进行更新

于 2021-05-31T13:35:23.780 回答