前端开发前端导航工具/手册fly63前端网
提交网站

foy

网站地址:https://zaaack.github.io/foy/api/
网站描述:轻量级的基于 nodejs 的通用 build 工具

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


特点:

  • 基于 promise 的任务和内置工具函数(fs/shell), 无缝支持 async/await
  • 类似于 shelljs 的跨平台 shell dsl, 人人都会写 shell
  • 易学易用,无需为写仅仅几个 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


相关网站
pm2
pm2 是一个带有负载均衡功能的Node应用的进程管理器
官网GitHub
node
一个基于 Chrome V8 引擎的 JavaScript 运行环境
官网GitHub
Koa
基于 Node.js 平台的下一代 web 开发框架
官网GitHub
Express
基于 Node.js 平台,快速、开放、极简的 web 开发框架
官网GitHub
Egg.js
为企业级框架和应用而生
官网GitHub
Sails.js
一个Web框架,可以于轻松构建自定义,企业级Node.js Apps
官网GitHub
socketstream
实时Web应用程序的框架
官网GitHub
Hapi.js
基于 Node.js 的应用和服务的富框架
官网GitHub
Kraken.js
基于 express 构建,实现对环境变量的感知、动态配置、高级中间件和应用生命周期的事件通知
官网GitHub
Mean.js
一种全栈 Javascript 开发架构
官网GitHub
flatiron.js
一款 Node.js 和浏览器的框架组件
官网GitHub
loopback
基于Express 的web架构,提供一套ORM解决方案
官网GitHub
Notif.me
一个用于发送通知的Node.js库
官网GitHub
bluebird
一个第三方Promise规范实现库
官网GitHub
colors.js
一款基于node.js console命令行参数神器
官网GitHub
commander.js
一个轻巧的nodejs模块,提供了用户命令行输入和参数解析强大功能
官网GitHub
node-crawler
一款最好的node.js爬虫工具
官网GitHub
passport.js
是Nodejs中的一个做登录验证的中间件
官网GitHub
nodemailer
一个简单易用的Node.js邮件发送组件
官网GitHub
istanbul
一个单元测试代码覆盖率检查工具
官网GitHub
nodemon
一个node调试工具
官网GitHub
yargs
yargs模块来开发自己的命令行工具集合
官网GitHub
axios
基于http客户端的promise,面向浏览器和nodejs
官网GitHub
async
基于node适应异步编程,减少回调的嵌套
官网GitHub
awesome-nodejs
一个网罗各个工具包的集合
官网GitHub
GitBook
基于 Node.js 的命令行工具,可使用 Github/Git 和 Markdown 来制作精美的电子书。
官网
ThinkJS
是奇舞团开源的一款 Node.js 框架
官网GitHub
Lass.js
搭建基于 Node.js 的脚手架工具
官网GitHub
Fastify
一个现代的 Node.js 框架
官网GitHub
Cheerio.js
是nodejs特别为服务端定制的,能够快速灵活的对JQuery核心进行实现
官网GitHub
jsdom
用于在node中解析html
官网GitHub
Connect
为Node平台的中间件框架
官网GitHub
Nest.js
用于构建高效且可伸缩Web应用程序的渐进式 Node.js 框架
官网GitHub
Derby.js
一个基于node全栈框架
官网GitHub
Mojito
一个JavaScript的Web应用框架
官网GitHub
Mean.IO
一种全栈 Javascript 开发架构,它的名称来自于:MongoDB,Express,Angular,Node
官网GitHub
JSON-Server
用于搭建一台JSON服务器,测试一些业务逻辑
官网GitHub
Feathers.js
一个非常高效灵活的,可以从零构建应用的框架
官网GitHub
Restify.js
一个基于Nodejs的REST应用框架
官网GitHub
Nodal.js
一个可扩展的,以意见为依据的全服务框架
官网GitHub
Spine.js
一个构建JavaScript Web应用的轻量级MVC框架
官网GitHub
Horizon
由RethinkDB团队开发的一款开源实时后端框架
官网GitHub
SocketCluster
一个基于engine.io的WebSocket服务器集群
官网GitHub
mongoose
在node.js异步环境下对mongodb进行便捷操作的对象模型工具
官网GitHub
Sequelize
一款Nodejs ORM框架
官网GitHub
node_redis
node之中连接redis使用的redis模块
官网GitHub
knex.js
是bookshelf框架的基础,其核心是query builder
官网GitHub
mongous
一个简单高效、轻量级的nodejs mongodb驱动
官网GitHub
node-mongodb-native
用于连接操作mongodb的nodejs驱动
官网GitHub
node-postgres【pg】
在nodejs中用来连接PostgreSql数据库的模块
官网GitHub
Q.js
用于解决node回调问题
官网GitHub
debug
一款node.js打印调试日志模块
官网GitHub
SuperAgent
一个轻量的,渐进式的ajax api
官网GitHub
rxdb
Web 实时数据库,支持Node.js等多个终端
官网GitHub
lyo
发布兼容浏览器环境的 Node.js 包
官网GitHub
nlp.js
基于node自然语言处理的一个库
官网GitHub
x-ray
基于Node.js 的HTML 内容抓取工具
官网GitHub
Primus
通用包装器实时框架
官网GitHub
nodebestpractices
NodeJS最佳实践
官网GitHub
foy
轻量级的基于 nodejs 的通用 build 工具
官网
ncc
Node.js 一键编译打包工具
官网GitHub
nock
可用于测试执行HTTP请求的模块
官网GitHub
Deno
Node.js之父新造的轮子
官网GitHub