grunt-pipe

Simple file pipe process in gruntjs

grunt-pipe

PSimple file pipe process

This plugin requires Grunt ~0.4.1

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-pipe --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-pipe');

In your project's Gruntfile, add a section named pipe to the data object passed into grunt.initConfig().

grunt.initConfig({
  pipe: {
    your_target: {
      options: {
        ignoreEmpty : true,
        domMode : false,
        process : function(contentoptionsgruntsrcFilePath){
          // write your want content 
          return content
        }
      },
 
      // Target-specific file lists and/or options go here. 
    },
  },
})

Type: Function

Processing function that has below arguments.

  • content

    • String
    • source file content.
  • filepath

    • String
    • source file path
  • grunt

    • Object
    • grunt object
  • example

    • this example replace content item
function(contentfilepathgrunt){
  return content.replace(/baz/,"foo")
}

Type: Boolean Default value: true

When this value true and process result is empty value, this task not output anything.

Type: Boolean Default value: false

If true, convert content to cheerio dom object.

You can handling dom in options.process for example below.

function($filepathgrunt){
  $("div").attr("foo","baz")
  return $.html()
}

In this sample, replace test/fixtures/foo's content's baz to foo.

default_options: {
  options: {
    process : function(contentfilepathgrunt){
      return content.replace(/baz/,"foo")
    }
  },
  files: {
    'tmp/foo': 'test/fixtures/foo'
  },
},

In this sample, change dom items.

dom_mode: {
  options: {
    domMode : true,
    process : function($filepathgrunt){
      $("div").attr("foo","baz")
      return $.html()
    }
  },
  files: {
    'tmp/dom_mode': 'test/fixtures/dom_mode'
  },
},
 
#### Multiple sources.
Multiple source file sample.
If files has multiple source file, ouput concat each result.
 
```js
multifiles : {
  options: {
    process : function(content, filepath, grunt){
      return  "filepath:" + filepath + "\n"
            + "content:" + content + "\n"
    }
  },
  files: {
    'tmp/multifiles': ['test/fixtures/foo', 'test/fixtures/dom_mode']
  },
}

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

(Nothing yet)