Skip to content

Instantly share code, notes, and snippets.

@thewillhuang
Forked from oxpa/webpack.config.js
Created November 23, 2016 03:40
Show Gist options
  • Save thewillhuang/d2b5778c572619cb60fce6bcdef5f1af to your computer and use it in GitHub Desktop.
Save thewillhuang/d2b5778c572619cb60fce6bcdef5f1af to your computer and use it in GitHub Desktop.

Revisions

  1. @oxpa oxpa revised this gist Aug 15, 2016. 1 changed file with 7 additions and 5 deletions.
    12 changes: 7 additions & 5 deletions webpack.config.js
    Original file line number Diff line number Diff line change
    @@ -5,17 +5,19 @@ var ReactRedux = require("react-redux");

    var ExtractTextPlugin = require("extract-text-webpack-plugin");

    var window={}

    var getElementsByTagName = function (b) {
    return [{appendChild:function (c){
    //console.log(global);
    global['webpackJsonp'] = function (a,b) {
    //console.log(a,b)
    };
    require('./compiled/'+c.src); console.log(c);return c; // c.onLoad()
    global['webpackJsonp'] = window['webpackJsonp'];
    global['React']=React;
    console.log(c);
    require('./compiled/'+c.src);
    }}]
    }
    var createElement = function (t) {return {}}


    var locals = {
    paths: [
    '/'
  2. @oxpa oxpa created this gist Aug 15, 2016.
    92 changes: 92 additions & 0 deletions webpack.config.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,92 @@
    var ReactDom = require("react-dom");
    var Redux = require("redux");
    var ReactRouter = require("react-router");
    var ReactRedux = require("react-redux");

    var ExtractTextPlugin = require("extract-text-webpack-plugin");

    var getElementsByTagName = function (b) {
    return [{appendChild:function (c){
    //console.log(global);
    global['webpackJsonp'] = function (a,b) {
    //console.log(a,b)
    };
    require('./compiled/'+c.src); console.log(c);return c; // c.onLoad()
    }}]
    }
    var createElement = function (t) {return {}}

    var locals = {
    paths: [
    '/'
    ,'/login'
    ,'/about'
    ,'/svcs'
    ,'/remind'
    ,'/register'
    ,'/reset'
    ],
    scope:{
    React:React,
    ReactDom:ReactDom,
    Redux:Redux,
    ReactRedux:ReactRedux,
    ReactRouter:ReactRouter
    ,window:{}
    ,webpackJsonp: function(){}
    ,document:{
    getElementsByTagName:getElementsByTagName,
    createElement:createElement
    }
    //documentElement:["classList"]},
    //Element:{prototype:{matches:false}}
    }
    }
    module.exports = {
    //node: {process:false},
    entry: {bundle:['./index.js'], main:['./main.js'], style:['./style.scss']},
    output: {
    path: __dirname +'/compiled/',
    chunkFilename: "[name].js",
    filename: '[name].js',
    libraryTarget: 'umd'
    ,chunkLoadTimeout: 120000
    },
    externals: { "react": "React", "redux": "Redux", "react-dom":"ReactDom", "react-redux":"ReactRedux", "react-router":"ReactRouter"},// "flickity":"Flickity"},
    module: {
    loaders: [
    {
    test: /\.scss$/,
    loader: ExtractTextPlugin.extract("style","css!postcss!sass")
    },
    {
    test: /.jsx?$/,
    loader: 'babel-loader',
    exclude: /node_modules/,
    query: {
    presets: ['react', 'stage-2','es2015-native-modules'],
    plugins: ["transform-object-rest-spread","transform-object-assign"]
    }
    }
    ]
    },
    resolve: {
    extensions: ["", ".js", "jsx", "js6"],
    alias: { /*need these for flickity*/
    'eventEmitter/EventEmitter': 'wolfy87-eventemitter/EventEmitter',
    'get-style-property': 'desandro-get-style-property',
    'matches-selector': 'desandro-matches-selector',
    'classie': 'desandro-classie'
    }

    },
    plugins: [
    new StaticSiteGeneratorPlugin('main', locals.paths, locals,locals.scope),
    new ExtractTextPlugin('css/[name].css', {
    allChunks: true
    })
    ],
    postcss: function () {
    return [require('autoprefixer')];
    }
    };