🦑 Let webpack generate an emoji favicon for you
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples/mdx-deck
.eslintrc
.gitignore
.npmignore
.travis.yml
LICENSE
README.md
index.js
package-lock.json
package.json
plugin.js
test.js
webpack.config.js

README.md

Emoji Favicon Webpack Plugin

Build Status

Generates a favicon based on an emoji for your webapp

Installation

$ npm install --save-dev emoji-favicon-webpack-plugin

Usage

Add the plugin to your webpack config and pass your emoji of choice to it as an argument. A favicon will be generated and outputted with your bundle.

const EmojiFaviconPlugin = require('emoji-favicon-webpack-plugin');
const HtmlPlugin = require('html-webpack-plugin');

module.exports = {
  plugins: [
    new EmojiFaviconPlugin('🦑'),
    new HtmlPlugin() // not required, but really handy
  ]
};

If you're using html-webpack-plugin, the HTML tags necessary to include your favicon will automatically be added to the <head> of your document.

  ...
  <link rel="shortcut icon" href="favicon.ico">
</head>

Options

By default, we use Twemoji for consistent results across all operating systems. If you would prefer to use your system's emoji font instead, specify the useSystem option in the constructor.

new EmojiFaviconPlugin({
  emoji: '🍣',
  useSystem: true,
  sizes: [16] // default is [16, 32, 48]
})

You can also specify a shortcode instead of an emoji! Check out this link for a complete listing of emojis and their shortcodes.

new EmojiFaviconPlugin(':bathtub:') // 🛁

A note about using system emoji

MacOS has a pretty awesome and extensive library of emoji built into its Apple Color Emoji typeface, but other operating systems aren't so lucky. If you normally develop on a Mac, you will see different results when you build your app on a Linux or Windows machine.

In order to get consistent results between development and production, you should make sure that you use the same operating system for building in each environment. The configuration required to make this happen varies between CI tools, but if you use TravisCI, you can add the following to your .travis.yml file depending on what OS you're trying to target:

MacOS

os: osx

Ubuntu

# the following is required to use Ubuntu system emoji
# https://github.com/travis-ci/travis-ci/issues/8836#issuecomment-348227535
sudo: required
addons:
  chrome: stable

Examples

MDX Deck

License

MIT