foy: 轻量级的基于 nodejs 的通用 build 工具 原 荐

栏目: Node.js · 发布时间: 5年前

foy: 轻量级的基于 nodejs 的通用 build 工具 原 荐

foy: 轻量级的基于 nodejs 的通用 build 工具

  zaaack 发布于 15分钟前

字数 487

阅读 1

收藏 0

npm Grunt Node.js Yarn ShellJS

开发十年,就只剩下这套架构体系了! >>> foy: 轻量级的基于 nodejs 的通用 build 工具 原 荐

npm 的 scripts 下写的命令太多就很容易很乱,各种第三方轮子都只能解决一部分问题,总感觉不是很好用,想找个类似 make 的 工具 只能找到 jake, 可是 jake 的 API 太老,居然很多都不支持 promise, 代码也不多,就干脆自己造轮子了, 感觉效果还行。

特点:

  • 基于 promise 的任务和内置工具函数(fs/shell), 无缝支持 async/await
  • 类似于 shelljs 的跨平台 shell dsl, 人人都会写 shell
  • 易学易用,无需为写仅仅几个 build 命令而花费几个小时去寻找和学习第三方包
  • 很小的安装成本
    • foy:
    • gulp:
    • grunt:
  • 无缝和第三方支持 promise 的工具包整合,不需要封装成插件就能用

foy: 轻量级的基于 nodejs 的通用 build 工具 原 荐

使用:

安装

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

© 著作权归作者所有

共有人打赏支持

上一篇: 原生javascript开发仿微信打飞机小游戏

下一篇: 三种javascript数组搜索的效率对比

foy: 轻量级的基于 nodejs 的通用 build 工具 原 荐

zaaack

foy: 轻量级的基于 nodejs 的通用 build 工具 原 荐
foy: 轻量级的基于 nodejs 的通用 build 工具 原 荐

开源项目作者

作为一个开源项目作者,是时候站出来拯救世界了!

领取条件:开源项目被开源中国收录的开发者可领取

粉丝 34

博文 92

码字总数 43498

作品 8

长沙

程序员

提问

加载中

评论( 1 )

foy: 轻量级的基于 nodejs 的通用 build 工具 原 荐
红薯

1分钟前

代码放码云吧,我们来推荐一下:)

删除一条评论

评论删除后,数据将无法恢复

取消

确定

相关文章 最新文章

轻量级的项目 build 工具 - foy

福伊(foy) 是一个轻量级的基于 nodejs 和 promise 的通用 build 工具 特点: 基于 promise 的任务和内置工具函数(fs/shell), 无缝支持 async/await 类似于 shelljs 的跨平台 shell dsl, 人人都...

zaaack

今天

0

0

Node v6.11.3 (LTS) 发布,重新开启快照功能

Node v6.11.3 (LTS) 已发布,这次发布的版本有 152 个提交,其中包括 75 个与测试相关的,25 个与文档相关的,21 个与构建/工具相关的,以及 3 个是升级依赖关系的。 值得关注的变更: buil...

局长

2017/09/06

1K

1

Node.js v8.9.4 (LTS) 发布,可以从任何目录配置

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 发布,服务器端 JavaScript 运行环境

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 发布,服务器端 JavaScript 运行环境

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 AOP功能完全集成到了Spring事物管理、日志和其他各种特性的上下文中。 Authentication 权限认证 Logging 日志 Transaction Manage 事务 Lasy Loading 懒加载 Context process 上下文处...

shimmerkaiye

22分钟前

1

0

mac安装配置neo4j

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

分布式消息通信-ActiveMQ-笔记

消息中间件的初步认识 什么是消息中间件? 消息中间件是指利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。 通过提供消息传递和消息排队模型,可...

Java搬砖工程师

39分钟前

1

0

foy: 轻量级的基于 nodejs 的通用 build 工具 原 荐
《卡尔威特的教育》读书摘抄及相关感想2400字

《卡尔威特的教育》读书摘抄及相关感想2400字: 世界上的绝大部分工作须先培训才能上岗,而“为人父母”这份工作似乎是人类本能使然,大多数父母没做过入职前的培训就懵懵懂懂上岗了,甚至...

原创小博客

39分钟前

2

0

foy: 轻量级的基于 nodejs 的通用 build 工具 原 荐
天真贝叶斯学习机 | TiDB Hackathon 优秀项目分享

Ti Hack 系列 TiDB Hackathon 2018 共评选出六组优秀项目,本系列文章将由这六组项目的成员主笔,分享他们的参赛经验和成果。我们非常希望本届 Hackathon 诞生的优秀项目能够在社区中延续下去...

TiDB

43分钟前

1

0

foy: 轻量级的基于 nodejs 的通用 build 工具 原 荐

没有更多内容

加载失败,请刷新页面

加载更多

以上所述就是小编给大家介绍的《foy: 轻量级的基于 nodejs 的通用 build 工具 原 荐》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Head Rush Ajax

Head Rush Ajax

Brett McLaughlin、Eric Freeman、Elisabeth Freeman / O'Reilly Media, Inc. / 2006-03-01 / USD 34.99

Ajax, or Asynchronous JavaScript and XML, is a term describing the latest rage in web development. Ajax is used to create interactive web applications with XML-based web services, and using JavaScript......一起来看看 《Head Rush Ajax》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试