diff --git a/.travis.yml b/.travis.yml
index c833e5e0..cae6ac14 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,14 +4,15 @@ node_js:
- "5"
- "6"
env:
- - WEBPACK_VERSION=1
- - WEBPACK_VERSION=2
+ - WEBPACK_VERSION=1 EXTRACT_PLUGIN_VERSION=1
+ - WEBPACK_VERSION=2 EXTRACT_PLUGIN_VERSION=2
+ - WEBPACK_VERSION=3 EXTRACT_PLUGIN_VERSION=3.0.0-beta.3
before_install:
- stty columns 120
install:
- npm install --ignore-scripts
- npm rm webpack
- npm rm extract-text-webpack-plugin
- - npm install webpack@$WEBPACK_VERSION extract-text-webpack-plugin@$WEBPACK_VERSION --ignore-scripts || true
+ - npm install webpack@$WEBPACK_VERSION extract-text-webpack-plugin@$EXTRACT_PLUGIN_VERSION --ignore-scripts || true
script:
- npm test
diff --git a/examples/appcache/dist/webpack-3/0714810ae3fb211173e2964249507195.png b/examples/appcache/dist/webpack-3/0714810ae3fb211173e2964249507195.png
new file mode 100644
index 00000000..d71b3d78
Binary files /dev/null and b/examples/appcache/dist/webpack-3/0714810ae3fb211173e2964249507195.png differ
diff --git a/examples/appcache/dist/webpack-3/bundle.js b/examples/appcache/dist/webpack-3/bundle.js
new file mode 100644
index 00000000..2d1b6065
--- /dev/null
+++ b/examples/appcache/dist/webpack-3/bundle.js
@@ -0,0 +1,83 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = 0);
+/******/ })
+/************************************************************************/
+/******/ ([
+/* 0 */
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__(1);
+var h1 = document.createElement('h1');
+h1.innerHTML = 'Hello world!';
+document.body.appendChild(h1);
+
+
+/***/ }),
+/* 1 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ })
+/******/ ]);
\ No newline at end of file
diff --git a/examples/appcache/dist/webpack-3/index.html b/examples/appcache/dist/webpack-3/index.html
new file mode 100644
index 00000000..536e8a47
--- /dev/null
+++ b/examples/appcache/dist/webpack-3/index.html
@@ -0,0 +1 @@
+
Example template
\ No newline at end of file
diff --git a/examples/appcache/dist/webpack-3/manifest.appcache b/examples/appcache/dist/webpack-3/manifest.appcache
new file mode 100644
index 00000000..04bdd6db
--- /dev/null
+++ b/examples/appcache/dist/webpack-3/manifest.appcache
@@ -0,0 +1,9 @@
+CACHE MANIFEST
+# eda37a6c6de5fd0ecfbe
+
+0714810ae3fb211173e2964249507195.png
+bundle.js
+styles.css
+
+NETWORK:
+*
diff --git a/examples/appcache/dist/webpack-3/styles.css b/examples/appcache/dist/webpack-3/styles.css
new file mode 100644
index 00000000..232a2cdb
--- /dev/null
+++ b/examples/appcache/dist/webpack-3/styles.css
@@ -0,0 +1,3 @@
+body {
+ background: snow;
+}
\ No newline at end of file
diff --git a/examples/build-examples.js b/examples/build-examples.js
index 15e17724..adf81ebe 100644
--- a/examples/build-examples.js
+++ b/examples/build-examples.js
@@ -12,7 +12,7 @@ var rimraf = require('rimraf');
var webpack = require('webpack');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
-if (webpackMajorVersion === '2') {
+if (Number(webpackMajorVersion) > 1) {
var extractOriginal = ExtractTextPlugin.extract;
ExtractTextPlugin.extract = function (fallback, use) {
return extractOriginal({
diff --git a/examples/custom-template/dist/webpack-3/0714810ae3fb211173e2964249507195.png b/examples/custom-template/dist/webpack-3/0714810ae3fb211173e2964249507195.png
new file mode 100644
index 00000000..d71b3d78
Binary files /dev/null and b/examples/custom-template/dist/webpack-3/0714810ae3fb211173e2964249507195.png differ
diff --git a/examples/custom-template/dist/webpack-3/bundle.js b/examples/custom-template/dist/webpack-3/bundle.js
new file mode 100644
index 00000000..2d1b6065
--- /dev/null
+++ b/examples/custom-template/dist/webpack-3/bundle.js
@@ -0,0 +1,83 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = 0);
+/******/ })
+/************************************************************************/
+/******/ ([
+/* 0 */
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__(1);
+var h1 = document.createElement('h1');
+h1.innerHTML = 'Hello world!';
+document.body.appendChild(h1);
+
+
+/***/ }),
+/* 1 */
+/***/ (function(module, exports) {
+
+// removed by extract-text-webpack-plugin
+
+/***/ })
+/******/ ]);
\ No newline at end of file
diff --git a/examples/custom-template/dist/webpack-3/index.html b/examples/custom-template/dist/webpack-3/index.html
new file mode 100644
index 00000000..d68bf441
--- /dev/null
+++ b/examples/custom-template/dist/webpack-3/index.html
@@ -0,0 +1,12 @@
+
+
+
+
+ Webpack App
+
+
+
+ Partial
+
+
+
diff --git a/examples/custom-template/dist/webpack-3/styles.css b/examples/custom-template/dist/webpack-3/styles.css
new file mode 100644
index 00000000..232a2cdb
--- /dev/null
+++ b/examples/custom-template/dist/webpack-3/styles.css
@@ -0,0 +1,3 @@
+body {
+ background: snow;
+}
\ No newline at end of file
diff --git a/examples/default/dist/webpack-3/bundle.js b/examples/default/dist/webpack-3/bundle.js
new file mode 100644
index 00000000..14431f78
--- /dev/null
+++ b/examples/default/dist/webpack-3/bundle.js
@@ -0,0 +1,425 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = 0);
+/******/ })
+/************************************************************************/
+/******/ ([
+/* 0 */
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__(1);
+var h1 = document.createElement('h1');
+h1.innerHTML = 'Hello world!';
+document.body.appendChild(h1);
+
+
+/***/ }),
+/* 1 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// style-loader: Adds some css to the DOM by adding a