一个 Publish 插件,可以轻松地为任何 Publish 网站运行 npm 命令。
NPMPublishPlugin
允许你将 NPM 包集成到你的 Publish 站点中。 如果你的站点需要构建 javascript 或 css,那么这是你的理想插件。
Apple 平台
Xcode 14.3 或更高版本
Swift 5.8 或更高版本
macOS 12 或更高版本的部署目标
Linux
要将其安装到你的 Publish 包中,请将其作为依赖项添加到你的 Package.swift
清单中
let package = Package(
...
dependencies: [
...
.package(
url: "https://github.com/johnsundell/publish.git",
from: "0.9.0"
),
.package(
url: "https://github.com/brightdigit/NPMPublishPlugin.git",
from: "1.0.0"
)
],
targets: [
.target(
...
dependencies: [
...
.product(name: "Publish", package: "publish"),
.product(name: "NPMPublishPlugin", package: "NPMPublishPlugin"),
]
)
]
...
)
然后,在你想要使用它的地方导入 NPMPublishPlugin
import NPMPublishPlugin
将 npm
添加到你的 Publish 步骤中
import NPMPublishPlugin
let mainJS = OutputPath.file("js/main.js")
try DeliciousRecipes().publish(using: [
.addMarkdownFiles(),
.copyResources(),
.addFavoriteItems(),
.addDefaultSectionTitles(),
.generateHTML(withTheme: .delicious),
.generateRSSFeed(including: [.recipes]),
.generateSiteMap(),
// from the **npm** package directory at `Styling`
.npm(npmPath, at: "Styling") {
// run `npm ci`
ci()
// run `npm run publish -- --output-filename js/main.js`
run(paths: [mainJS]) {
"publish -- --output-filename"
mainJS
}
}
])
NPMPublishPlugin
包含三种创建 Publish 步骤以运行 npm 的方式。
首先,你可以提供一个 Settings
和一个 Job
项目数组。 但是,你很可能想使用另外两种方法,你可以传递
Folder
或 Path
对象运行NPM/JobBuilder
传递一系列作业,类似于 SwiftUI 使用其 DSL 构建 View
的方式NPMPublishPlugin
带有两个命令 ci
和 run
。 如果你希望包含更多命令,只需创建一个可以接受类似于 run
方法的 Arguments
的函数
public func run(
paths: [OutputPath] = [],
@NPM.ArgumentBuilder _ arguments: () -> [NPM.Argument]
) -> NPM.Job {
.init(subcommand: .run, outputRelativePaths: paths, arguments)
}
Argument
项可以是简单的字符串,也可以是动态的 OutputPath
,它基于 Publish 库中的 Path
。
此代码根据 MIT 许可证分发。 有关更多信息,请参见 LICENSE 文件。