grunt-pre-proc
v2.0.0
Published
The super simple preprocessor for front-end development.
Downloads
2
Maintainers
Readme
grunt-pre-proc
This Grunt plugin is wrapper of preProc.
- gulp plugin: gulp-pre-proc
- webpack loader: pre-proc-loader
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
(Asoptions.replaceTag.replacement
, notoptions.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
(Asoptions.pickTag.allowErrors
, notoptions.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.