gasket, 构建跨平台数据管道

分享于 

4分钟阅读

GitHub

  繁體 雙語
unix pipes + npm
  • 源代码名称:gasket
  • 源代码网址:http://www.github.com/datproject/gasket
  • gasket源代码文档
  • gasket源代码下载
  • Git URL:
    git://www.github.com/datproject/gasket.git
    Git Clone代码到本地:
    git clone http://www.github.com/datproject/gasket
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/datproject/gasket
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    垫圈

    node.js的预配置管道

    logo

    
    $ npm install -g gasket
    
    
    $ gasket # prints help
    
    
    $ gasket completion --save # install tab completion
    
    
    
    

    用法

    若要设置管道,请在 package.json 中添加 gasket

    {
     "name": "my-test-app",
     "dependencies" : {
     "transform-uppercase": "^1.0.0" },
     "gasket": {
     "example": [
     {
     "command": "echo hello world",
     "type": "pipe" },
     {
     "command": "transform-uppercase",
     "type": "pipe" }
     ]
     }
    }

    运行上面的example 管道到 repo 并运行

    
    $ gasket run example # will print HELLO WORLD
    
    
    
    

    gasket 将在管道( 它支持通过npm安装的模块/命令) 中生成每个命令,并将它们组合为( 如果该类型设置为"管道")。

    如果要等待前一个命令完成,请将该类型设置为"跑步"。

    {
     "gasket": {
     "example": [
     {
     "command": "echo hello world",
     "type": "run" },
     {
     "command": "echo hello afterwards",
     "type": "run" }
     ]
     }
    }

    运行上面的命令将打印

    
    hello world
    
    
    hello afterwards
    
    
    
    

    管道中的模块

    除支持 node 模块的命令外,还支持返回流

    {
     "gasket": [
     {
     "command": "echo hello world",
     "type": "pipe" }
     {
     "command": {"module":"./uppercase.js"},
     "type": "pipe" }
     ]
    }

    其中 uppercase.js 是一个看起来像这样的文件

    var through =require('through2')module.exports=function() {
     returnthrough(function(data, enc, cb) {
     cb(null, data.toString().toUpperCase())
     })
    }

    如果你的MODULE 在管道中读取/写入JSON对象集 json:true。 这将使垫片分析换行器分离 JSON,然后将对象解析为流和输出。

    运行 gasket run main 将产生 HELLO WORLD

    使用 gasket.json

    如果你没有 package.json 文件,则可以将任务添加到 gasket.json 文件中

    {
     "example": [
     {
     "command": "echo hello world",
     "type": "pipe" },
     {
     "command": "transform-uppercase",
     "type": "pipe" }
     ]
    }

    垫圈作为模块

    你也可以使用垫圈作为 MODULE

    var gasket =require('gasket')var pipelines =gasket({
     example: [
     {
     "command":"echo hello world",
     "type":"pipe" },
     {
     "command":"transform-uppercase",
     "type":"pipe" }
     ]
    })pipelines.run('example').pipe(process.stdout)

    数据  构建  平台  跨平台  PIP  管道  
    相关文章