grunt-antrol-concat

0.3.1 • Public • Published

grunt-cmd-concat

Concatenate cmd files.

Getting Started

This plugin requires Grunt ~0.4.0

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-cmd-concat --save-dev

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

grunt.loadNpmTasks('grunt-cmd-concat');

The "concat" task

Overview

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

grunt.initConfig({
  concat: {
    options: {
      // Task-specific options go here.
    },
    your_target: {
      // Target-specific file lists and/or options go here.
    },
  },
})

Options

options.paths

Type: Array Default value: ['sea-modules']

Where are the modules in the sea.

options.include

Type: String Default value: 'self' Optional values:

  • self
  • relative
  • all

How should it include its dependencies.

options.separator

Type: String Default value: ', '

A string value that is used to do something with whatever.

options.banner

Type: String

The banner of the concated files.

options.footer

Type: String

The footer of the concated files.

options.noncmd

Type: Boolean Default Value: false

If set true, it will be treated as a noncmd file.

options.uglify

Type: Object

Uglify prettifier, you really don't have to change this value.

options.processors

Type: Object

Processors are functions to find the related files to concat.

options.css2js

Type: Function Default value: null

If a javascript module required a css, the css should be transported to js.

You can get a css2js function from grunt-cmd-transport:

var style = require('grunt-cmd-transport').style.init(grunt);

grunt.initConfig({
  concat: {
    foo: {
      options: {
        css2js: style.css2js
      }
    }
  }
});

options.split

Type: Object Default Value:

{
  turnOn:false,
  limit:100
  exlucde:null
}

if you want to split concated files into small pieces,put split.turnOn=true,and set split.limit , for example limit:100 means that when exceeds 100KB,it will create a file,if original file is home.js , it will create home1.js,home2.js,...,homex.js,etc.

if you have some async files you do not want to use for split , you can specify them by exclude param , for example , exclude : '/async/', so if the file path includes async , it will not split.

Usage Examples

Simple Concat

This is the same as grunt-contrib-concat.

grunt.initConfig({
  concat: {
    foo: {
      options: {
        noncmd: true
      },
      files: {
        'dist/a.js': ['src/a.js', 'src/b.js'],
      }
    }
  }
})

Relative Concat

This will include all relative dependencies.

You should transport your modules first, make sure your modules contain id and dependencies.

Get transport task.

grunt.initConfig({
  concat: {
    foo: {
      options: {
        include: 'relative'
      },
      files: {
        'dist/a.js': ['src/a.js', 'src/b.js'],
      }
    }
  }
})

The a.js is something like:

define('a', ['./c'], ...)

And the result should be the concat of a.js, c.js and b.js.

Contributing

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.

Release History

July 8th, 2013 0.2.5

fix pkg not exist

June 27th, 2013 0.2.4

css2js need options

June 18th, 2013 0.2.3

  • Bugfix for css concat. #15

April 23th, 2013 0.2.2

  • Bugfix. Remove output detect.

April 16th, 2013 0.2.1

  • Add options.footer
  • Add options.noncmd

April 11th, 2013 0.2.0

  • Remove options.relative
  • Add options.include

April 10th, 2013 0.1.1

  • Update cmd-util
  • Bugfix

April 1st, 2013 0.1.0

First version.

Readme

Keywords

Package Sidebar

Install

npm i grunt-antrol-concat

Weekly Downloads

4

Version

0.3.1

License

none

Last publish

Collaborators

  • lianyzhou