laravel-mix-favicon-generator
Version:
Laravel Mix extension to generate favicons and include them into the HTML from single PNG/JPG/SVG image.
75 lines (60 loc) • 3 kB
Markdown
**Laravel Mix extension to generate favicons and include them into the HTML from single PNG/JPG/SVG image.**
When mix hot is running, just add your file into `inputPath` (only PNG/JPG/SVG, recommended) which will generate favicons for your website and inject HTML into your blade, if enabled*. See options for more detail.
Install the extension:
```sh
npm install laravel-mix-favicon-generator
```
Next require the extension inside your Laravel Mix config and call `favicon()` in your pipeline:
```js
// webpack.mix.js
const mix = require('laravel-mix');
require('laravel-mix-favicon-generator');
mix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css')
.favicon();
```
If nothing is passed to the extension inside your Laravel Mix config, the following options will be used:
```js
{
inputPath: 'resources/assets/favicon/generate',
inputFile: '*.{jpg,png,svg}',
publicPath: 'public',
output: '/assets/favicon',
usePathAsIs: true,
dataFile: 'faviconData.json',
blade: 'resources/views/blocks/favicon.blade.php',
reload: false,
debug: false,
compression: 0,
scalingAlgorithm: 'Mitchell',
bgColor: '#ffffff',
appName: 'Web App',
chromeManifest: {
name: 'Web App',
display: 'standalone',
orientation: 'portrait',
on_conflict: 'override',
declared: true
}
}
```
* `inputPath` (string). Your favicon data path. There will be temporarily saved generated JSON for injecting HTML code (if `blade` option enabled).
* `inputFile` (string). File to watch (attention, file will be deleted).
* `publicPath` (string). Your application's public path.
* `output` (string). Where generated files will be saved. Relative to the `publicPath` option.
* `usePathAsIs` (boolean). Force RealFaviconGenerator to insert the path everywhere (use absolute path).
* `dataFile` (string). Temporary data file while generating HTML.
* `blade` (string or boolean). Path to blade file, where generated HTML code will be saved. This will overwrite whole file. _Note: set this option to `false` to disabled injecting HTML code._
* `reload` (boolean). Whenever to reload browser after success. _Note: this option has no effect if you are using [laravel-mix-blade-reload](https://www.npmjs.com/package/laravel-mix-blade-reload) extension._
* `debug` (boolean). Whenever to log extension events messages to the console.
* `compression` (num). Set the compression level, from 0 (no compression) to 5 (highest compression level).
* `scalingAlgorithm` (string). Set the scaling algorithm. Possible values: Mitchell, NearestNeighbor, Cubic, Bilinear, Lanczos, Spline.
* `bgColor` (string). Theme color (meta).
* `appName` (string). Application name (meta).
* `chromeManifest` (object). site.webmanifest settings.