Giter Club home page Giter Club logo

modernizr-webpack-plugin's Introduction

modernizr-webpack-plugin

Generate a custom modernizr build during webpack compile. Includes support to integrate with html-webpack-plugin

npm version Build Status

Install

$ npm install modernizr-webpack-plugin

Usage

Add the modernizr-webpack-plugin to your list of plugins in the webpack config

// webpack.config.js
var ModernizrWebpackPlugin = require('modernizr-webpack-plugin');

module.exports = {
  entry: 'app.js',
  output: {
    filename: 'app-bundle.js'
  },
  plugins: [
    new ModernizrWebpackPlugin()
  ]
}

Config

ModernizrWebpackPlugin supports all the options available to Modernizr.

// webpack.config.js
...
var config = {
  'feature-detects': [
    'input',
    'canvas',
    'css/resize'
  ]
}

module.exports = {
  ...
  plugins: [
    // Output modernizr-bundle.js with 'input',  
    // 'canvas' and 'css/resize' feature detects
    new ModernizrWebpackPlugin(config)
  ]
}

Additional options available via following config properties.

filename

Type: string

Optional custom output filename. Support included for [hash] and [chunkhash] in output name. Defaults to modernizr-bundle.js. Note: Will append .js extension if missing.

var config = {
  filename: 'my-bundle-name[chunkhash].js',
}

minify

Type: boolean | object

Option to minify Modernizr bundle. Accepts true, false or object. For details of available minify options when using object please refer to uglify-js Defaults to true if NODE_ENV is production otherwise false.

var config = {
  minify: {
    output: {
      comments: true,
      beautify: true
    }
  }
}

htmlWebpackPlugin

Type: boolean | object | array

Option to include support for html-webpack-plugin. Defaults to true.

// define variable if specifying instance to inject into
var plugin = new HtmlWebpackPlugin();
webpackConfig = {...
   plugins: [
     plugin,  
     new ModernizrWebpackPlugin({
       // auto search through all webpack plugins for compatible
       // html-webpack-plugins and inject into all
       htmlWebpackPlugin: true
       // OR disable any html-webpack-plugin injection
       htmlWebpackPlugin: false
       // OR inject into the instance specified
       htmlWebpackPlugin: plugin
       // OR inject into each of the instances specified
       htmlWebpackPlugin: [plugin]
     })
   ]
}

noChunk

Type: boolean

Option to simplify html-webpack-plugin template reference Defaults to false.

var htmlWebpackPluginConfig = {
  template:'template.html'
}
var modernizrPluginConfig = {
  filename: 'mybundle',
  noChunk: true
}

template.html

<!-- example of template without noChunk-->
<script src="<%= htmlWebpackPlugin.files.chunks['mybundle'].entry %>"></script>

<!-- example of template WITH noChunk-->
<script src="<%= htmlWebpackPlugin.files.mybundle %>"></script>

modernizr-webpack-plugin's People

Contributors

alexpalombaro avatar apalombaro avatar chrisdholt avatar dependabot[bot] avatar innin avatar iotch avatar leibowitz avatar simenb avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.