gpt4 book ai didi

swift - 将模块名称设置为不同于 SwiftPM 中的目录名称

转载 作者:可可西里 更新时间:2023-11-01 00:51:01 25 4
gpt4 key购买 nike

我有一个 Swift 库,其中包含一个核心模块和可选的奖励模块。我想使用以下目录布局,映射到导出的 Swift 包名称,如下所示:

Taco/
Source/
Core/ → import Taco
Toppings/ → import TacoToppings
SideDishes/ → import TacoSideDishes

在我看来,这是一个看起来很合理的项目布局。但是,如果我没有正确阅读文档,这将用无用的名称(如“Core”)污染全局模块命名空间。似乎 SwiftPM 只会导出名称与目录名称相同的模块,因此我必须这样做:

Taco/
Source/
Taco/
TacoToppings/
TacoSideDishes/

有没有办法配置 Package.swift 使用上面更整洁的目录布局并仍然导出所需的模块名称?

或者,是否可以在项目内部制作 Core、Toppings 和 SideDishes 模块,并将它们作为一个大的 Taco 模块全部导出到世界?

最佳答案

目前还没有一个干净的方法来做到这一点,但这似乎是一个合理的要求。我建议在 http://bugs.swift.org 提交增强请求

有一种“hacky”方法可以做到这一点:

在所需的内部布局中创建您的源:

Sources/Core
Sources/Toppings

为所需的模块名称添加额外的符号链接(symbolic link):

ln -s Core Sources/Taco
ln -s Toppings Sources/TacoToppings

在 list 中添加一个 exclude 指令以忽略不需要的模块名称:

let package = Package(
name: "Taco",
exclude: ["Sources/Core", "Sources/Toppings"]
)

is it possible to make the Core, Toppings, and SideDishes modules internal to the project, and export them all to the world as one big Taco module?

不,不幸的是目前没有办法做到这一点,它需要大量的编译器工作才能支持。

关于swift - 将模块名称设置为不同于 SwiftPM 中的目录名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38967338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com