NPMPublishPlugin

一个 Publish 插件,可以轻松地为任何 Publish 网站运行 npm 命令。

SwiftPM Twitter GitHub GitHub issues GitHub Workflow Status

Codecov CodeFactor Grade codebeat badge Code Climate maintainability Code Climate technical debt Code Climate issues Reviewed by Hound

目录

简介

NPMPublishPlugin 允许你将 NPM 包集成到你的 Publish 站点中。 如果你的站点需要构建 javascript 或 css,那么这是你的理想插件。

要求

Apple 平台

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
	  }
	}
])

配置 npm

NPMPublishPlugin 包含三种创建 Publish 步骤以运行 npm 的方式。

首先,你可以提供一个 Settings 和一个 Job 项目数组。 但是,你很可能想使用另外两种方法,你可以传递

运行 npm 命令

NPMPublishPlugin 带有两个命令 cirun。 如果你希望包含更多命令,只需创建一个可以接受类似于 run 方法的 Arguments 的函数

public func run(
  paths: [OutputPath] = [],
  @NPM.ArgumentBuilder _ arguments: () -> [NPM.Argument]
) -> NPM.Job {
  .init(subcommand: .run, outputRelativePaths: paths, arguments)
}

关于 Argument

Argument 项可以是简单的字符串,也可以是动态的 OutputPath,它基于 Publish 库中的 Path

参考

许可证

此代码根据 MIT 许可证分发。 有关更多信息,请参见 LICENSE 文件。