SciPost Code Repository

Skip to content
Snippets Groups Projects
webpack.dev.config.js 2.35 KiB
Newer Older
var webpack = require("webpack");
Jorran de Wit's avatar
Jorran de Wit committed
var BundleTracker = require('webpack-bundle-tracker');
var CleanWebpackPlugin = require('clean-webpack-plugin');
var ExtractTextPlugin = require("extract-text-webpack-plugin");
var glob = require("glob");
var path_bundles = __dirname + '/static_bundles/bundles';
Jorran de Wit's avatar
Jorran de Wit committed

module.exports = {
    context: __dirname,
    entry: {
Jorran de Wit's avatar
Jorran de Wit committed
            "bootstrap-loader",
Jorran de Wit's avatar
Jorran de Wit committed
            "./scipost/static/scipost/assets/js/dynamic_loading.js",
            "./scipost/static/scipost/assets/js/scripts.js",
Jorran de Wit's avatar
Jorran de Wit committed
        homepage: [
Jorran de Wit's avatar
Jorran de Wit committed
            "./scipost/static/scipost/assets/js/fader.js",
Jorran de Wit's avatar
Jorran de Wit committed
            "./scipost/static/scipost/assets/js/newsticker.js",
        ],
Jorran de Wit's avatar
Jorran de Wit committed
    },
    output: {
        path: path_bundles,
        publicPath: '/static/bundles/',
        filename: "js/[name]-[hash].js",
    },
    module: {
        loaders: [
            {
                test: /\.css$/,
                loader: ExtractTextPlugin.extract({
Jorran de Wit's avatar
Jorran de Wit committed
                    fallback: "style-loader",
Jorran de Wit's avatar
Jorran de Wit committed
                    use: "css-loader",
Jorran de Wit's avatar
Jorran de Wit committed
            },
            {
                test: /\.less$/,
                loader: ExtractTextPlugin.extract({
Jorran de Wit's avatar
Jorran de Wit committed
                    fallback: "style-loader",
                    use: "css-loader!less-loader"
            {
                test: /\.scss$/,
                loader: ExtractTextPlugin.extract({
Jorran de Wit's avatar
Jorran de Wit committed
                    fallback: "style-loader",
Jorran de Wit's avatar
Jorran de Wit committed
                    use: "css-loader!sass-loader"
Jorran de Wit's avatar
Jorran de Wit committed
        ]
    },
    plugins: [
        new webpack.ProvidePlugin({
            $: 'jquery',
            jQuery: 'jquery',
            Tether: 'tether',
            'window.Tether': 'tether',
            Tooltip: "exports-loader?Tooltip!bootstrap/js/dist/tooltip",
            Util: 'exports-loader?Util!bootstrap/js/dist/util',
Jorran de Wit's avatar
Jorran de Wit committed
            Popper: ['popper.js', 'default'],
        }),
        new BundleTracker({
            filename: './webpack-stats.json'
        }),
Jorran de Wit's avatar
Jorran de Wit committed
        new ExtractTextPlugin({
            filename: 'css/[name]-[hash].css',
        }),
Jorran de Wit's avatar
Jorran de Wit committed
        new CleanWebpackPlugin(['css', 'js'], {
            root: path_bundles,
            dry: false,
            exclude: []
Jorran de Wit's avatar
Jorran de Wit committed
        new webpack.optimize.UglifyJsPlugin(),
        new webpack.optimize.OccurrenceOrderPlugin(),
        new webpack.optimize.AggressiveMergingPlugin()
Jorran de Wit's avatar
Jorran de Wit committed
}