143 lines
3.5 KiB
Markdown
143 lines
3.5 KiB
Markdown
|
gulp-gzip
|
||
|
=========
|
||
|
|
||
|
Gzip plugin for [gulp](https://github.com/wearefractal/gulp).
|
||
|
|
||
|
#Install
|
||
|
|
||
|
```
|
||
|
npm install --save-dev gulp-gzip
|
||
|
```
|
||
|
|
||
|
#Options
|
||
|
|
||
|
### append `Boolean`
|
||
|
|
||
|
Appends `.gz` file extension if true. Defaults to true.
|
||
|
|
||
|
```javascript
|
||
|
gzip({ append: true })
|
||
|
```
|
||
|
`filename.txt` becomes `filename.txt.gz`.
|
||
|
|
||
|
### extension `String`
|
||
|
|
||
|
Appends an arbitrary extension to the filename. Disables `append` and `preExtension` options.
|
||
|
|
||
|
```javascript
|
||
|
gzip({ extension: 'zip' }) // note that the `.` should not be included in the extension
|
||
|
```
|
||
|
`filename.txt` becomes `filename.txt.zip`.
|
||
|
|
||
|
### preExtension `String`
|
||
|
|
||
|
Appends an arbitrary pre-extension to the filename. Disables `append` and `extension` options.
|
||
|
|
||
|
```javascript
|
||
|
gzip({ preExtension: 'gz' }) // note that the `.` should not be included in the extension
|
||
|
```
|
||
|
`filename.txt` becomes `filename.gz.txt`.
|
||
|
|
||
|
### threshold `String|Number|Boolean`
|
||
|
|
||
|
Minimum size required to compress a file. Defaults to false.
|
||
|
|
||
|
```javascript
|
||
|
gzip({ threshold: '1kb' })
|
||
|
```
|
||
|
|
||
|
```javascript
|
||
|
gzip({ threshold: 1024 })
|
||
|
```
|
||
|
|
||
|
```javascript
|
||
|
gzip({ threshold: true })
|
||
|
```
|
||
|
|
||
|
### gzipOptions `Object`
|
||
|
|
||
|
Options object to pass through to zlib.Gzip. See [zlib documentation](http://nodejs.org/api/zlib.html#zlib_options) for more information.
|
||
|
|
||
|
```javascript
|
||
|
gzip({ gzipOptions: { level: 9 } })
|
||
|
```
|
||
|
|
||
|
```javascript
|
||
|
gzip({ gzipOptions: { memLevel: 1 } })
|
||
|
```
|
||
|
|
||
|
### deleteMode `String|Function`
|
||
|
|
||
|
Some webserver modules such as nginx `gzip_static` looks for `example.html.gz`, serve it if it exists, else the original `example.html` will be served.
|
||
|
|
||
|
For instance, if `example.html` was 2kb, it would be gzipped and `example.html.gz` was created.
|
||
|
|
||
|
However, if later `example.html` is modified to content less than the threshold, gulp-gzip will only bypass it. Hence, you will end up with a new `example.html` yet old `example.html.gz`. Your webserver will continue to serve old content (`example.html.gz`).
|
||
|
|
||
|
Using this option, gulp-gzip will remove `example.html.gz`.
|
||
|
|
||
|
It takes in the same argument as `gulp.dest` as in `gulp.dest('mydest')`, so it knows where to look for the gzipped files. Defaults to `undefined`.
|
||
|
|
||
|
```javascript
|
||
|
gzip({ threshold: 1024, deleteMode: 'mydest' })
|
||
|
```
|
||
|
|
||
|
If you have `cwd` as in `gulp.dest('mydest', { cwd: mycwd })`. You can configure it using `deleteModeCwd`.
|
||
|
|
||
|
```javascript
|
||
|
gzip({ threshold: 1024, deleteMode: 'mydest', deleteModeCwd: mycwd })
|
||
|
```
|
||
|
|
||
|
### skipGrowingFiles `Boolean`
|
||
|
|
||
|
Some files actually get larger after compression. If true, this option passes along the original, uncompressed file if compression increases the file size. Defaults to false.
|
||
|
|
||
|
```javascript
|
||
|
gzip({ skipGrowingFiles : true })
|
||
|
```
|
||
|
|
||
|
#Examples
|
||
|
|
||
|
```javascript
|
||
|
var gulp = require('gulp');
|
||
|
var gzip = require('gulp-gzip');
|
||
|
|
||
|
gulp.task('compress', function() {
|
||
|
gulp.src('./dev/scripts/*.js')
|
||
|
.pipe(gzip())
|
||
|
.pipe(gulp.dest('./public/scripts'));
|
||
|
});
|
||
|
```
|
||
|
|
||
|
```javascript
|
||
|
var gulp = require('gulp');
|
||
|
var coffee = require('gulp-coffee');
|
||
|
var concat = require('gulp-concat');
|
||
|
var uglify = require('gulp-uglify');
|
||
|
var gzip = require('gulp-gzip');
|
||
|
|
||
|
gulp.task('deployScripts', function() {
|
||
|
gulp.src('./dev/scripts/*.coffee')
|
||
|
.pipe(coffee())
|
||
|
.pipe(concat('all.js'))
|
||
|
.pipe(uglify())
|
||
|
.pipe(gzip())
|
||
|
.pipe(gulp.dest('./public/scripts'));
|
||
|
});
|
||
|
```
|
||
|
|
||
|
```javascript
|
||
|
var gulp = require('gulp');
|
||
|
var tar = require('gulp-tar');
|
||
|
var gzip = require('gulp-gzip');
|
||
|
|
||
|
gulp.task('tarball', function() {
|
||
|
gulp.src('./files/*')
|
||
|
.pipe(tar('archive.tar'))
|
||
|
.pipe(gzip())
|
||
|
.pipe(gulp.dest('.'));
|
||
|
});
|
||
|
```
|
||
|
|
||
|
[More examples](https://github.com/jstuckey/gulp-gzip/tree/master/examples).
|