const webpack = require('webpack');
const path = require('path');
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const HtmlWebpackPlugin = require('html-webpack-plugin');

let theme = {
    '@primary-color': '#58a3ff',
    '@link-color': '#58a3ff'
};

module.exports = {
    entry: {
        //user
        'user/index': './js/user/index.js',
        'user/login': './js/user/login.js',
        'user/signIn': './js/user/signIn.js',
        'user/certify': './js/user/certify.js',
        //user-account
        'user/account/index': './js/user/account/index.js',
        'user/account/set': './js/user/account/set.js',
        'user/account/services': './js/user/account/services.js',

        //admin
        'admin/index': './js/admin/index.js',
        'admin/login': './js/admin/login.js',
        'admin/userManage': './js/admin/userManage.js',
        //admin-servicesManage
        'admin/servicesManage/patent': './js/admin/servicesManage/patent.js',

        vendors: ['jquery']
    },
    output: {
        path: path.resolve(__dirname, './build'),
        filename: '[name].js',
    },
    module: {
        loaders: [{
            test: /\.jsx?$/,
            exclude: /node_modules/,
            loader: 'babel-loader',
            query: {
                "presets": ["es2015", "react"],
                "plugins": [
                    ["antd", {
                        "style": true
                    }]
                ]
            }
            //loaders: ['babel-loader?presets[]=es2015,presets[]=react'] 
        }, {
            test: /\.css$/,
            loader: ExtractTextPlugin.extract('style-loader', 'css-loader')
        }, {
            test: /\.less$/,
            loader: ExtractTextPlugin.extract('style', `css!less?{"modifyVars":${JSON.stringify(theme)}}`)
        }, {
            test: /\.(png|jpg)$/,
            loader: 'url?limit=8192&name=[path][name].[ext]'
        }]
    },
    resolve: {
        extensions: ['', '.js', '.jsx']
    },
    plugins: [
        //这个使用uglifyJs压缩你的js代码
        new webpack.optimize.UglifyJsPlugin({
            minimize: true,
            compress: {
                warnings: true
            }
        }),
        new webpack.DefinePlugin({
            "process.env": {
                NODE_ENV: JSON.stringify("production")
            }
        }),
        new ExtractTextPlugin('[name].css', {
            allChunks: true
        }),
        //把入口文件里面的数组打包成verdors.js
        new webpack.optimize.CommonsChunkPlugin('vendors', 'vendors.js'),

        //user
        new HtmlWebpackPlugin({
            title: '用户首页',
            filename: 'user/index.html',
            template: './template/template.html',
            chunks: ['user/index', 'vendors']
        }),
        new HtmlWebpackPlugin({
            title: '用户登录',
            filename: 'user/login.html',
            template: './template/template.html',
            chunks: ['user/login', 'vendors']
        }),
        new HtmlWebpackPlugin({
            title: '用户注册',
            filename: 'user/signIn.html',
            template: './template/template.html',
            chunks: ['user/signIn', 'vendors']
        }),
        new HtmlWebpackPlugin({
            title: '用户认证',
            filename: 'user/certify.html',
            template: './template/template.html',
            chunks: ['user/certify', 'vendors']
        }),
        //user-account
        new HtmlWebpackPlugin({
            title: '用户中心-首页',
            filename: 'user/account/index.html',
            template: './template/template.html',
            chunks: ['user/account/index', 'vendors']
        }),
        new HtmlWebpackPlugin({
            title: '用户中心-设置',
            filename: 'user/account/set.html',
            template: './template/template.html',
            chunks: ['user/account/set', 'vendors']
        }),
        //user-account-services-patent
        new HtmlWebpackPlugin({
            title: '用户中心-科技服务',
            filename: 'user/account/services.html',
            template: './template/template.html',
            chunks: ['user/account/services', 'vendors']
        }),

        //admin
        new HtmlWebpackPlugin({
            title: '管理员-首页',
            filename: 'admin/index.html',
            template: './template/template.html',
            chunks: ['admin/index', 'vendors']
        }),
        new HtmlWebpackPlugin({
            title: '管理员-登录',
            filename: 'admin/login.html',
            template: './template/template.html',
            chunks: ['admin/login', 'vendors']
        }),
        new HtmlWebpackPlugin({
            title: '管理员-用户管理',
            filename: 'admin/userManage.html',
            template: './template/template.html',
            chunks: ['admin/userManage', 'vendors']
        }),
        //admin-servicesManage
        new HtmlWebpackPlugin({
            title: '管理员-科技服务管理-专利',
            filename: 'admin/servicesManage/patent.html',
            template: './template/template.html',
            chunks: ['admin/servicesManage/patent', 'vendors']
        })
    ]
};