spawn

Swift 5.0 Swift Package Manager @vinhnx

spawn 一个小型命令行工具,用于在本地快速尝试 Swift Package Manager (SPM) 包。

从 Xcode 11 开始,这项功能已经被 Xcode 11 Package 支持“侦察”到了 :),也就是说,从 Xcode 11 开始,Xcode 将自动解析包依赖并为你打开 Xcode 项目,无需任何第三方工具。但我会保留这个工具用于学习目的。

它的工作是检查当前仓库是否有任何 Package.swift 文件,并解析依赖,然后为你打开 Xcode。

(适用于 Vapor同样)

$ spawn
Completed resolution in 0.22s
📦 ... Everything is already up-to-date
🛠 ... generated: ./spawn.xcodeproj
📂 ... opening updated Xcode project
✅ all done!

注意:您可能需要关闭 Xcode 才能使 xed . 生效,或者从 Xcode 警报中选择“恢复”选项。

目标

当您想要在 Xcode 中试用或编辑 SPM 包,或者在 SPM 的包清单文件中添加任何新的 .package 后,您需要运行 swift package updateswift package generate-xcodeproj 并重新加载 Xcode。

这个小包装器旨在自动化该过程。

总结;之前

$ git clone https://github.com/vinhnx/DictionaryNestedSubscript # clone any Swift Package Manager project
$ cd DictionaryNestedSubscript # change directory to newly cloned repo
$ swift package update # update or resolve package dependencies
$ swift package generate-xcodeproj # generate a .xcodeproj to edit on Xcode
$ xed . # open generated .xcodeproj automatically

之后

$ git clone https://github.com/vinhnx/DictionaryNestedSubscript # clone any Swift Package Manager project
$ cd DictionaryNestedSubscript # change directory to newly cloned repo
$ spawn

TODO:未来我将研究如何自动化从远程仓库克隆,例如

$ spawn https://github.com/vinhnx/DictionaryNestedSubscript # not yet working

用法

在任何 Swift 包目录下,在 git clone 之后

$ spawn

Vapor

您可以使用 spawn 替代 Vapor 的 vapor xcode -y 命令

之前

$ vapor xcode -y

之后

$ spawn

安装

🆕 swiftbrew

“一个包管理器,用于安装预构建的 Swift 命令行工具包,或者说是 Swift 包的 Homebrew。”

$ swift brew install vinhnx/spawn

homebrew

$ brew tap vinhnx/homebrew-formulae
$ brew install spawn

或者

$ brew install vinhnx/homebrew-formulae/spawn

Mint

$ mint install vinhnx/spawn

Marathon

$ marathon install vinhnx/spawn

Make

$ git clone https://github.com/vinhnx/spawn.git
$ cd spawn
$ make

Swift Package Manager

$ git clone https://github.com/vinhnx/spawn.git
$ cd spawn
$ swift build -c release
$ cp -f .build/release/spawn /usr/local/bin/spawn

相关项目

如果您喜欢这个工具,请查看我的 vintage,它是一个用于检查任何过期包的工具。

组合

$ vintage && spawn # vintage: check for any outdated packages, spawn: generate and update packages for you

我希望你喜欢它!:)

帮助、反馈或建议?

欢迎在 Twitter 上与我联系,进行讨论、了解新闻和公告以及其他项目。🚀