clementlamoureux / grunt-import

Inline file importer with @import command for GruntJS

Home Page:http://gruntjs.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

grunt-import v0.1.7

Inline file importer with @import command.

Syntax - add @import "path/to/file"; into any of your files to get it imported/injected into that placeholder.

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-import --save-dev

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

grunt.loadNpmTasks('grunt-import');

Importer task

Run this task with the grunt import command.

Task targets, files and options may be specified according to the Grunt Configuring tasks guide.

Options

banner

Type: String Default: empty string

This string will be prepended to the beginning of the output. It is processed using [grunt.template.process][], using the default options.

(Default processing options are explained in the [grunt.template.process][] documentation)

footer

Type: String Default: empty string

This string will be appended to the end of the output. It is processed using [grunt.template.process][], using the default options.

(Default processing options are explained in the [grunt.template.process][] documentation)

Usage Examples

To include a file into another file add @import "path/to/another/file"; at any point inside your importing/source file.

Including external libs

In this example, running grunt import:dist (or grunt import because grunt-import is a [multi task][multitask]) will parse src/intro.js file writing the output to dist/intro.js

// Project configuration.
grunt.initConfig({
  import: {
    options: {},
    dist: {
      src: 'src/intro.js',
      dest: 'dist/intro.js',
    }
  }
});

In this example, running grunt import:dist will parse build/foo.js and write dist/foo.js, and parse build/bar.js and write dist/bar.js.

// Project configuration.
grunt.initConfig({
  import: {
    dist: {
      files: {
        'dist/foo.js': 'src/foo.js',
        'dist/bar.js': 'src/bar.js',
      }
    }
  }
});

Excluding a file from import

grunt.initConfig({
  import: {
    options: {
      exclude: [
        'src/foo.js'
      ]
    },
    dist: {
      src: 'src/intro.js',
      dest: 'dist/intro.js',
    }
  }
});

Running Importer with Uglify after import

In this example, running grunt watch:js will parse src/intro.js file writing the output to stage/intro.js and followup with the Uglify task writing output into dist/intro.js

// Project configuration.
grunt.initConfig({
  import: {
    options: {},
    dist: {
      src: 'src/intro.js',
      dest: 'stage/intro.js',
    },
    tasks: ['uglify:dist']
  },
  uglify: {
    dist: {
      src: 'stage/intro.js',
      dest: 'dist/intro.js',
    }
  }
});

Running Importer with Watch and Uglify after file changed

In this example, running grunt watch:js will listen to any changes to the src/intro.js after which it will run import:dist task followed by uglify:dist.

// Project configuration.
grunt.initConfig({
  watch: {
    js: {
      files: ['src/intro.js'],
      tasks: ['import:dist']
    }
  },
  import: {
    options: {},
    dist: {
      src: 'src/intro.js',
      dest: 'stage/intro.js',
    },
    tasks: ['uglify:dist']
  },
  uglify: {
    dist: {
      src: 'stage/intro.js',
      dest: 'dist/intro.js',
    }
  }
});

Running Importer on a directory

In this example any .js file in src/ will be parsed and outputted to dist/

// Project configuration.
grunt.initConfig({
  import: {
    options: {},
    dist: {
      expand: true,
      cwd: 'src/',
      src: '*.js',
      dest: 'dist/',
      ext: '.js'
    }
  }
});

Intercepting events

You can listen to import events emitted by grunt.import using:

grunt.event.on('import', function(action, filepath, target) {
  //your code
});

Release History

  • 2016-02-09   v0.1.8   Added exclude option
  • 2014-01-25   v0.1.7   Comments support using /* */ or //
  • 2013-11-09   v0.1.6   Inclusion optimisation by introducing array_unqiue functions
  • 2013-11-09   v0.1.5   Regex fix for strings containing $
  • 2013-11-06   v0.1.4   Readme update
  • 2013-11-06   v0.1.3   Readme update
  • 2013-11-06   v0.1.2   Readme update
  • 2013-11-06   v0.1.1   Readme update
  • 2013-11-06   v0.1.0   Initial Release

Task submitted by -Marcin Rosinski

This file was generated on Tue Feb 09 2016 15:51:30.

About

Inline file importer with @import command for GruntJS

http://gruntjs.com/

License:MIT License


Languages

Language:JavaScript 100.0%