zoukankan      html  css  js  c++  java
  • foy: 轻量级的基于 nodejs 的通用 build 工具

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

    特点:

    • 基于 promise 的任务和内置工具函数(fs/shell), 无缝支持 async/await
    • 类似于 shelljs 的跨平台 shell dsl, 人人都会写 shell
    • 易学易用,无需为写仅仅几个 build 命令而花费几个小时去寻找和学习第三方包
    • 很小的安装成本
      • foy: install size
      • gulp: install size
      • grunt: install size
    • 无缝和第三方支持 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
    
    
  • 相关阅读:
    python的使用
    SFM(structure from motion)
    linux 常用命令
    opencv图像操作
    两圆位置判断
    nat123动态域名解析软件使用教程
    IIS负载均衡
    Oracle 查询表信息(字段+备注) .
    【原创】开源.NET排列组合组件KwCombinatorics使用(三)——笛卡尔积组合
    visual studio 2013使用技巧
  • 原文地址:https://www.cnblogs.com/Mr-Nobody/p/10072686.html
Copyright © 2011-2022 走看看