https://github.com/anseki/grunt-pre-proc
The super simple preprocessor for front-end development.
https://github.com/anseki/grunt-pre-proc
css front-end gruntplugin html javascript preprocess preprocessor
Last synced: 3 months ago
JSON representation
The super simple preprocessor for front-end development.
- Host: GitHub
- URL: https://github.com/anseki/grunt-pre-proc
- Owner: anseki
- License: mit
- Created: 2017-03-15T16:06:36.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-06-17T01:51:22.000Z (over 1 year ago)
- Last Synced: 2025-06-29T18:52:05.331Z (4 months ago)
- Topics: css, front-end, gruntplugin, html, javascript, preprocess, preprocessor
- Language: JavaScript
- Size: 154 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# grunt-pre-proc
[](https://www.npmjs.com/package/grunt-pre-proc) [](https://github.com/anseki/grunt-pre-proc/issues) [](package.json) [](LICENSE)
This [Grunt](http://gruntjs.com/) plugin is wrapper of [preProc](https://github.com/anseki/pre-proc).
* [gulp](http://gulpjs.com/) plugin: [gulp-pre-proc](https://github.com/anseki/gulp-pre-proc)
* [webpack](https://webpack.js.org/) loader: [pre-proc-loader](https://github.com/anseki/pre-proc-loader)The super simple preprocessor for front-end development.
See [preProc](https://github.com/anseki/pre-proc) for options and more information about preProc.## Getting Started
This plugin requires Grunt `~0.4.1`
If you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
```shell
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:
```js
grunt.loadNpmTasks('grunt-pre-proc');
```## Usage
In your project's Gruntfile, add a section named `preProc` to the data object passed into `grunt.initConfig()`.
```js
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`](https://github.com/anseki/pre-proc#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:
```js
grunt.initConfig({
preProc: {
deploy: {
options: {
tag: 'DEBUG', // common
pathTest: '/path/to', // commonremoveTag: {}, // 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`](https://github.com/anseki/pre-proc#replacetag) method with current content.
You can specify arguments by the same way as the [`removeTag`](#removetag).
Following arguments are accepted:- `tag`
- `pathTest`
- `replacement` (As `options.replaceTag.replacement`, not `options.replacement`)### `pickTag`
If `pickTag` option is specified, call [`pickTag`](https://github.com/anseki/pre-proc#picktag) method with current content.
You can specify arguments by the same way as the [`removeTag`](#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.