98 lines
2.4 KiB
Markdown
98 lines
2.4 KiB
Markdown
|
# gulp-header [![NPM version](https://badge.fury.io/js/gulp-header.png)](http://badge.fury.io/js/gulp-header) [![Build Status](https://travis-ci.org/tracker1/gulp-header.svg?branch=master)](https://travis-ci.org/tracker1/gulp-header)
|
||
|
|
||
|
gulp-header is a [Gulp](https://github.com/gulpjs/gulp) extension to add a header to file(s) in the pipeline. [Gulp is a streaming build system](https://github.com/gulpjs/gulp) utilizing [node.js](http://nodejs.org/).
|
||
|
|
||
|
## Install
|
||
|
|
||
|
```javascript
|
||
|
npm install --save-dev gulp-header
|
||
|
```
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
```javascript
|
||
|
// assign the module to a local variable
|
||
|
var header = require('gulp-header');
|
||
|
|
||
|
|
||
|
// literal string
|
||
|
// NOTE: a line separator will not be added automatically
|
||
|
gulp.src('./foo/*.js')
|
||
|
.pipe(header('Hello'))
|
||
|
.pipe(gulp.dest('./dist/'))
|
||
|
|
||
|
|
||
|
// ejs style templating
|
||
|
gulp.src('./foo/*.js')
|
||
|
.pipe(header('Hello <%= name %>\n', { name : 'World'} ))
|
||
|
.pipe(gulp.dest('./dist/'))
|
||
|
|
||
|
|
||
|
// ES6-style template string
|
||
|
gulp.src('./foo/*.js')
|
||
|
.pipe(header('Hello ${name}\n', { name : 'World'} ))
|
||
|
.pipe(gulp.dest('./dist/'))
|
||
|
|
||
|
|
||
|
// using data from package.json
|
||
|
var pkg = require('./package.json');
|
||
|
var banner = ['/**',
|
||
|
' * <%= pkg.name %> - <%= pkg.description %>',
|
||
|
' * @version v<%= pkg.version %>',
|
||
|
' * @link <%= pkg.homepage %>',
|
||
|
' * @license <%= pkg.license %>',
|
||
|
' */',
|
||
|
''].join('\n');
|
||
|
|
||
|
gulp.src('./foo/*.js')
|
||
|
.pipe(header(banner, { pkg : pkg } ))
|
||
|
.pipe(gulp.dest('./dist/'))
|
||
|
|
||
|
|
||
|
// reading the header file from disk
|
||
|
var fs = require('fs');
|
||
|
gulp.src('./foo/*.js')
|
||
|
.pipe(header(fs.readFileSync('header.txt', 'utf8'), { pkg : pkg } ))
|
||
|
.pipe(gulp.dest('./dist/'))
|
||
|
|
||
|
|
||
|
// for use with coffee-script
|
||
|
return gulp.src([
|
||
|
'src/*.coffee',
|
||
|
])
|
||
|
.pipe(header(banner, { pkg : pkg } ))
|
||
|
.pipe(sourcemaps.init()) // init sourcemaps *after* header
|
||
|
.pipe(coffee({
|
||
|
bare: true
|
||
|
}))
|
||
|
.pipe(sourcemaps.write('.'))
|
||
|
.pipe(gulp.dest('dist/js'))
|
||
|
```
|
||
|
|
||
|
## Issues and Alerts
|
||
|
|
||
|
My handle on twitter is [@tracker1](https://twitter.com/tracker1) - If there is an urgent issue, I get twitter notifications sent to my phone.
|
||
|
|
||
|
## API
|
||
|
|
||
|
### header(text, data)
|
||
|
|
||
|
#### text
|
||
|
|
||
|
Type: `String`
|
||
|
Default: `''`
|
||
|
|
||
|
The template text.
|
||
|
|
||
|
|
||
|
#### data
|
||
|
|
||
|
Type: `Object`
|
||
|
Default: `{}`
|
||
|
|
||
|
The data object used to populate the text.
|
||
|
|
||
|
In addition to the passed in data, `file` will be the stream object for the file being templated against and `filename` will be the path relative from the stream's basepath.
|
||
|
|
||
|
*NOTE: using `false` will disable template processing of the header*
|