轻量级的项目 build 工具 foy
- 授权协议: MIT
- 开发语言: JavaScript
- 操作系统: 跨平台
- 软件首页: http://zaaack.github.io/foy
- 软件文档: https://gitee.com/zane_young/foy
软件介绍
福伊(foy) 是一个轻量级的基于 nodejs 和 promise 的通用 build 工具
特点:
基于 promise 的任务和内置工具函数(fs/shell), 无缝支持 async/await
类似于 shelljs 的跨平台 shell dsl, 人人都会写 shell
易学易用,无需为写仅仅几个build命令而花费几个小时去寻找和学习第三方包
很小的安装成本
无缝和第三方支持 promise 的工具包整合,不需要封装成插件就能用
使用:
安装
yarn add -D foy # or npm i -D foy # Or Install globally with yarn add -g foy # or npm i -g foy
在项目根目录下增加一个 Foyfile.js (或者 Foyfile.ts, 需要安装 ts-node)
import { task, desc, option, strict, fs } from 'foy'
task('build', async ctx => {
await ctx.exec('tsc')
})
desc('Build ts files with tsc')
option('-w, --watch', 'watch file changes')
strict() // This will throw an error if you passed some options that doesn't defined via `option()`
task('build2', async ctx => {
await ctx.exec(`tsc ${ctx.options.watch ? '-w' : ''}`)
})
task('task', async ctx => {
await fs.rmrf('/some/dir/or/file') // Remove directory or file
await fs.copy('/src', '/dist') // Copy folder or file
let json = await fs.readJson('./xx.json')
await ctx.env('NODE_ENV', 'production')
await ctx.cd('./src')
await ctx.exec('some command') // Execute an command
let { stdout } = await ctx.exec('ls', { stdio: 'pipe' }) // Get the stdout, default is empty because it's redirected to current process via `stdio: 'inherit'`.
})然后就可以运行任务了
# 安装在本地 node_modules 目录下 npx foy build npx foy build1 npx foy task # 安装在全局 foy build foy build1
About Face 3
Alan Cooper、Robert Reimann、David Cronin / John Wiley & Sons / 2007-5-15 / GBP 28.99
* The return of the authoritative bestseller includes all new content relevant to the popularization of how About Face maintains its relevance to new Web technologies such as AJAX and mobile platforms......一起来看看 《About Face 3》 这本书的介绍吧!
