foy: 轻量级的基于 nodejs 的通用 build 工具
原
荐
字数 487
阅读 1
收藏 0
npm Grunt Node.js Yarn ShellJS
npm 的 scripts 下写的命令太多就很容易很乱,各种第三方轮子都只能解决一部分问题,总感觉不是很好用,想找个类似 make 的 工具 只能找到 jake, 可是 jake 的 API 太老,居然很多都不支持 promise, 代码也不多,就干脆自己造轮子了, 感觉效果还行。
特点:
- 基于 promise 的任务和内置工具函数(fs/shell), 无缝支持 async/await
- 类似于 shelljs 的跨平台 shell dsl, 人人都会写 shell
- 易学易用,无需为写仅仅几个 build 命令而花费几个小时去寻找和学习第三方包
- 很小的安装成本
- foy:
- gulp:
- grunt:
- 无缝和第三方支持 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
© 著作权归作者所有
共有人打赏支持
加载中
评论( 1 )
删除一条评论
评论删除后,数据将无法恢复
取消
确定
相关文章 最新文章
福伊(foy) 是一个轻量级的基于 nodejs 和 promise 的通用 build 工具 特点: 基于 promise 的任务和内置工具函数(fs/shell), 无缝支持 async/await 类似于 shelljs 的跨平台 shell dsl, 人人都...
zaaack
今天
0
0
Node v6.11.3 (LTS) 已发布,这次发布的版本有 152 个提交,其中包括 75 个与测试相关的,25 个与文档相关的,21 个与构建/工具相关的,以及 3 个是升级依赖关系的。 值得关注的变更: buil...
局长
2017/09/06
1K
1
Node.js v8.9.4 (LTS) 发布了,Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时。 Node.js 使用高效、轻量级的事件驱动、非阻塞 I/O 模型。 更新内容: deps: upgrade npm to 5.6.0...
周其
01/04
2K
13
Node.js v8.5.0 发布了。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时。 Node.js 使用高效、轻量级的事件驱动、非阻塞 I/O 模型。 主要更新内容: build V8 中现在重新启用快照 ...
达尔文
2017/09/13
1K
13
Node.js v8.7.0 已发布,Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时。 Node.js 使用高效、轻量级的事件驱动、非阻塞 I/O 模型。 更新内容: deps: update npm to 5.4.2 #15600...
王练
2017/10/12
1K
10
没有更多内容
加载失败,请刷新页面
加载更多Spring AOP功能完全集成到了Spring事物管理、日志和其他各种特性的上下文中。 Authentication 权限认证 Logging 日志 Transaction Manage 事务 Lasy Loading 懒加载 Context process 上下文处...
shimmerkaiye
22分钟前
1
0
2.4. Mac OS installation This section describes how to install Neo4j on Mac OS. 2.4.1. Unix console application Download the latest release from Neo4j Download Center. Select th......
火力全開
31分钟前
1
0
消息中间件的初步认识 什么是消息中间件? 消息中间件是指利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。 通过提供消息传递和消息排队模型,可...
Java搬砖工程师
39分钟前
1
0
《卡尔威特的教育》读书摘抄及相关感想2400字: 世界上的绝大部分工作须先培训才能上岗,而“为人父母”这份工作似乎是人类本能使然,大多数父母没做过入职前的培训就懵懵懂懂上岗了,甚至...
原创小博客
39分钟前
2
0
Ti Hack 系列 TiDB Hackathon 2018 共评选出六组优秀项目,本系列文章将由这六组项目的成员主笔,分享他们的参赛经验和成果。我们非常希望本届 Hackathon 诞生的优秀项目能够在社区中延续下去...
TiDB
43分钟前
1
0
没有更多内容
加载失败,请刷新页面
加载更多以上所述就是小编给大家介绍的《foy: 轻量级的基于 nodejs 的通用 build 工具 原 荐》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Hibernate
James Elliott / O'Reilly Media, Inc. / 2004-05-10 / USD 24.95
Do you enjoy writing software, except for the database code? Hibernate:A Developer's Notebook is for you. Database experts may enjoy fiddling with SQL, but you don't have to--the rest of the appl......一起来看看 《Hibernate》 这本书的介绍吧!