var nib = require("nib"); var jeet = require("jeet"); var rupture = require("rupture"); var path = require("path"); var ExtractTextPlugin = require("extract-text-webpack-plugin"); var webpack = require("webpack"); var CopyWebpackPlugin = require('copy-webpack-plugin'); module.exports = function(config, env) { var IS_STATIC = env === 'static'; var entry = config._config.entry.slice(); var publicPath = config._config.output.publicPath; // var output = config._config.output; // output.filename = "[name].js"; config._config.entry = { bundle: entry, }; config.merge({ stylus: { use: [nib(), jeet(), rupture()] }, output: { filename: "[name].js", publicPath: "/", }, resolveLoader: { root: path.join(__dirname, "node_modules"), modulesDirectories: ['./'], }, resolve: { root: path.join(__dirname, "node_modules"), alias: { 'original-react': path.join(__dirname, "node_modules", "react"), 'react/lib': path.join(__dirname, "node_modules", "react", "lib"), 'react': path.join(__dirname, 'patched-react.js'), 'pypyjs': '../playground/graphene-js/pypyjs', 'playground-page': (env != "static")?'../playground/page':'../pages/_empty', 'playground-wrapper': (env == "develop")?'../playground/page':'../playground/wrapper', }, modulesDirectories: ['./'] } }); if (IS_STATIC) { config.plugin('extract-css', ExtractTextPlugin, ["app.css"]); } config.plugin('static', CopyWebpackPlugin, [[{ from: '../static'}]]); config.plugin('define-env', webpack.DefinePlugin, [{ "ENV": JSON.stringify(env), "PUBLIC_PATH": JSON.stringify(publicPath), }]); // if (env != "static") { // config.plugin('commons', webpack.optimize.CommonsChunkPlugin, ["commons.js"]); // } config.loader('stylus', function(cfg) { cfg.test = /\.styl$/; if (IS_STATIC) { cfg.loader = ExtractTextPlugin.extract('style-loader', 'css-loader!stylus-loader', { allChunks: true }); } else { cfg.loader = 'style-loader!css-loader!stylus-loader'; } return cfg }); config.removeLoader('png'); config.loader('png', function(cfg) { cfg.test = /\.png$/; cfg.loader = 'url-loader' return cfg }) return config; };