6.1.1 启用命令插件

原文链接: https://docs.swift.org/latest/documentation/packagemanagerdocs/enablecommandplugin/

6.1.1 启用命令插件

用来自其他包的命令插件扩展包管理器的命令。

概述

要使用来自其他包的插件,先添加对提供该插件的包的依赖。这样本包就可以使用该依赖中的任何插件。

添加依赖

例如,要启用 swift-docc-plugin 中的插件,把它添加为依赖:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
let package = Package(
    // 名称、平台、产品等
    dependencies: [
        // 其他依赖
        .package(url: "https://github.com/swiftlang/swift-docc-plugin",
                 from: "1.0.0"),
    ],
    targets: [
        // 目标
    ]
)

查看可用的插件

运行 swift package plugin --list 可以查看可用的插件。关于 plugin 命令的完整文档,参见 swift package plugin。

用 swift package 后跟插件名来调用可用的插件,并提供所需的任何参数或选项。例如,下面的命令调用 swift-docc-plugin 中的 generate-documentation 命令。

1
swift package generate-documentation

向插件传递参数和标志

包管理器会把调用动词之后的所有命令行参数和标志都传给插件。

例如,如果你的包有多个目标,你可能想用参数 --target 指定其中某一个目标。下面这个改过的例子预览了假想的 MyTarget 目标:

1
swift package generate-documentation --target MyTarget

豁免沙箱限制

需要写入文件系统的命令插件会导致:如果 swift package 是在控制台中调用的,包管理器会请求用户批准;如果不是,则拒绝该请求。在 swift package 调用中传入标志 --allow-writing-to-package-directory,就可以不问而直接允许该请求——这在持续集成环境中特别有用。

类似地,使用 --allow-network-connections 标志可以在不弹出提示的情况下允许网络连接。