Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tgallacher/kraken-loader

Kraken.io image optimisation loader for Webpack 2+
https://github.com/tgallacher/kraken-loader

image-processing kraken kraken-loader optimization webpack

Last synced: 23 days ago
JSON representation

Kraken.io image optimisation loader for Webpack 2+

Awesome Lists containing this project

README

        

kraken-loader
===========

Image optmization loader for Webpack 2+ using [Kraken.io](https://kraken.io).

1. [Installation](#installation)
1. [Options](#options)
1. [Usage](#usage)
1. [Acknowledgements](#acknowledgements)
1. [LICENSE - MIT](#license---mit)


## Installation

````
$ npm i -D kraken-loader
````


## Options

The loader supports the following options:

* `key` - your Kraken API Key
* `secret` - your Kraken API Secret
* `lossy` - enable/disable intelligent lossy optimization. Defaults to `true`
* `enabled` - enable/disable optimization using this loader. Defaults to `true`
* `silent` - enable/disable byte savings message. Defaults to `false`

The loader also supports supplying your API credentials using the following environment variables:
* `KRAKEN_LOADER_KEY` - Kraken API Key
* `KRAKEN_LOADER_SECRET` - Kraken API Secret

The environment variables offer a way to supply your API credentials without having to commit them to your VCS. This is the recommended method for supplying your Kraken.io API credentials.


## Usage

It is expected that this plugin will be used alongside the [url-loader](https://github.com/webpack/url-loader), [file-loader](https://github.com/webpack/file-loader), or [raw-loader](https://github.com/webpack/raw-loader).

### Use with loader defaults
The following example requires your API credentials to be supplied using the supported environment variables (see [Options](#options)).

````js
module.exports = {
...
module: {
rules: [
{
test: /\.(jpe?g|png|gif|svg)$/i,
use: [
{
loader: 'file-loader',
options: {
name: 'images/[name].[ext]'
}
},
'kraken-loader'
]
}
],
}
}
````

### Customising the loader config
```js
module.exports = {
...
module: {
rules: [
{
test: /\.(jpe?g|png|gif|svg)$/i,
use: [
{
loader: 'file-loader',
options: {
name: 'images/[name].[ext]'
}
},
{
loader: 'kraken-loader',
options: {
enabled: process.env.NODE_ENV === 'production',
secret: 'my-api-secret',
silent: true,
lossy: true,
key: 'my-api-key'
}
}
]
}
]
}
}
```

Supplying your API credentials in the options object is optional. The options object can be used alongside the environment variables for specifying API credentials.


## Acknowledgements

This plugin was inspired by the [gulp-kraken](https://github.com/kraken-io/gulp-kraken) plugin.


## LICENSE - MIT
See [LICENSE](/LICENSE.md) for details.