2.0.0 • Published 6 years ago

grunt-pre-proc v2.0.0

Weekly downloads
13
License
MIT
Repository
github
Last release
6 years ago

grunt-pre-proc

npm GitHub issues David license

This Grunt plugin is wrapper of preProc.

The super simple preprocessor for front-end development.
See preProc for options and more information about preProc.

Getting Started

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-pre-proc --save-dev

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

grunt.loadNpmTasks('grunt-pre-proc');

Usage

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

grunt.initConfig({
  preProc: {
    deploy: {
      options: {
        // Remove `DEBUG` contents from all files in `dir1` directory and all JS files.
        removeTag: {tag: 'DEBUG', pathTest: ['/path/to/dir1', /\.js$/]}
      },
      expand: true,
      cwd: 'develop/',
      src: '**/*',
      dest: 'public_html/'
    }
  }
});

Options

removeTag

If removeTag option is specified, call removeTag method with current content.

You can specify an object that has properties as arguments of the method.
Following properties are accepted:

  • tag
  • pathTest

Also, you can specify common values for the arguments into upper layer. That is, the options.pathTest is used when options.removeTag.pathTest is not specified.

If the pathTest is specified, current source file path is tested with the pathTest. If there are multiple source files (e.g. src: ['file1', 'file2'], src: '*.js', etc.), the first file path is tested.

For example:

grunt.initConfig({
  preProc: {
    deploy: {
      options: {
        tag: 'DEBUG',           // common
        pathTest: '/path/to',   // common

        removeTag: {},                            // tag: 'DEBUG', pathTest: '/path/to'
        replaceTag: {tag: ['SPEC1', 'SPEC2']},    // tag: ['SPEC1', 'SPEC2'], pathTest: '/path/to'
        pickTag: {}                               // tag: 'DEBUG', pathTest: '/path/to'
      },
      // ...
    }
  }
});

replaceTag

If replaceTag option is specified, call replaceTag method with current content.

You can specify arguments by the same way as the removeTag.
Following arguments are accepted:

  • tag
  • pathTest
  • replacement (As options.replaceTag.replacement, not options.replacement)

pickTag

If pickTag option is specified, call pickTag method with current content.

You can specify arguments by the same way as the removeTag.
Following arguments are accepted:

  • tag
  • allowErrors (As options.pickTag.allowErrors, not options.allowErrors)

When the tag was not found, this method throws an error by default. If true is specified for allowErrors, it returns null (not a string) without error. It is useful for handling unknown source code. (No file is saved.)
Also, you can specify options to call multiple methods, and other methods are not called when the tag was not found.