const webpack = require('webpack'); const path = require('path'); const ExtractTextPlugin = require("extract-text-webpack-plugin"); const HtmlWebpackPlugin = require('html-webpack-plugin'); const WebpackDevServer = require('webpack-dev-server'); const entries = require('./webpack/entry.config.js'); const version = require('./package.json').version; const argv = require('yargs').argv; const ImageminPlugin = require('imagemin-webpack-plugin').default; let theme = { '@primary-color': '#58a3ff', '@link-color': '#58a3ff' }; let isWatch = argv.env.watch == 'watch'; let isDev = isWatch || argv.env.deploy == 'dev'; module.exports = (function () { let plugins = [ new webpack.optimize.CommonsChunkPlugin({ name: 'vendors' }), new ExtractTextPlugin({ filename: "[name].css", disable: false, allChunks: true }), new webpack.ProvidePlugin({ $: "jquery", jQuery: "jquery" }), new HtmlWebpackPlugin({ title: '首页', filename: 'html/index.html', template: './template/indexNew.html', chunks: ['index', 'vendors'] }), new HtmlWebpackPlugin({ title: '支付跳转页面', filename: 'html/toPayment.html', template: './template/toPayment.html', chunks: ['toPayment', 'vendors'] }), new HtmlWebpackPlugin({ title: '关于公司', filename: 'html/aboutUs.html', template: './template/aboutUs.html', chunks: ['aboutUs', 'vendors'] }), new HtmlWebpackPlugin({ title: '关于公司APP', filename: 'html/APPaboutUs.html', template: './template/APPaboutUs.html', chunks: ['APPaboutUs', 'vendors'] }), new HtmlWebpackPlugin({ title: '联系我们', filename: 'html/contactUs.html', template: './template/contactUs.html', chunks: ['contactUs', 'vendors'] }), new HtmlWebpackPlugin({ title: '科技服务', filename: 'html/service.html', template: './template/service.html', chunks: ['service', 'vendors'] }), new HtmlWebpackPlugin({ title: '注册', filename: 'html/register.html', template: './template/register.html', chunks: ['register', 'vendors'] }), new HtmlWebpackPlugin({ title: '会员', filename: 'html/member.html', template: './template/member.html', chunks: ['member', 'vendors'] }), new HtmlWebpackPlugin({ title: '科技交易', filename: 'html/technologyTrading.html', template: './template/technologyTrading.html', chunks: ['technologyTrading', 'vendors'] }), new HtmlWebpackPlugin({ title: '科技智库', filename: 'html/thinkTank.html', template: './template/thinkTank.html', chunks: ['thinkTank', 'vendors'] }), new HtmlWebpackPlugin({ title: '科技金融', filename: 'html/financialIndex.html', template: './template/financialIndex.html', chunks: ['financialIndex', 'vendors'] }), new HtmlWebpackPlugin({ title: '科技交易-技术专利', filename: 'html/technologyTrading/achievement.html', template: './template/technologyTrading/achievement.html', chunks: ['technologyTrading/achievement', 'vendors'] }), new HtmlWebpackPlugin({ title: '科技交易-技术需求', filename: 'html/technologyTrading/demand.html', template: './template/technologyTrading/demand.html', chunks: ['technologyTrading/demand', 'vendors'] }), new HtmlWebpackPlugin({ title: '科技交易-技术专利详情', filename: 'html/technologyTrading/achievementDetail.html', template: './template/technologyTrading/achievementDetail.html', chunks: ['technologyTrading/achievementDetail', 'vendors'] }), new HtmlWebpackPlugin({ title: '科技交易-技术需求详情', filename: 'html/technologyTrading/demandDetail.html', template: './template/technologyTrading/demandDetail.html', chunks: ['technologyTrading/demandDetail', 'vendors'] }), new HtmlWebpackPlugin({ title: '在线评估', filename: 'html/technologyTrading/assessMent.html', template: './template/technologyTrading/assessMent.html', chunks: ['technologyTrading/assessMent', 'vendors'] }), new HtmlWebpackPlugin({ title: '科技交易-技术成果下单页面', filename: 'html/technologyTrading/achievementOrder.html', template: './template/technologyTrading/achievementOrder.html', chunks: ['technologyTrading/achievementOrder', 'vendors'] }), new HtmlWebpackPlugin({ title: '科技交易-技术需求下单页面', filename: 'html/technologyTrading/demandOrder.html', template: './template/technologyTrading/demandOrder.html', chunks: ['technologyTrading/demandOrder', 'vendors'] }), new HtmlWebpackPlugin({ title: '智库咨询-智政详情', filename: 'html/thinkTank/policyDetail.html', template: './template/thinkTank/policyDetail.html', chunks: ['thinkTank/policyDetail', 'vendors'] }), new HtmlWebpackPlugin({ title: '智库咨询-智政列表', filename: 'html/thinkTank/policyList.html', template: './template/thinkTank/policyList.html', chunks: ['thinkTank/policyList', 'vendors'] }), new HtmlWebpackPlugin({ title: '智库咨询-智者详情', filename: 'html/thinkTank/thinkerDetail.html', template: './template/thinkTank/thinkerDetail.html', chunks: ['thinkTank/thinkerDetail', 'vendors'] }), new HtmlWebpackPlugin({ title: '科技金融-投资机构', filename: 'html/financial/investmentInstitution.html', template: './template/financial/investmentInstitution.html', chunks: ['financial/investmentInstitution', 'vendors'] }), new HtmlWebpackPlugin({ title: '科技金融-投资机构', filename: 'html/financial/investmentDetail.html', template: './template/financial/investmentDetail.html', chunks: ['financial/investmentDetail', 'vendors'] }), new HtmlWebpackPlugin({ title: '科技服务-高新认定', filename: 'html/service/highTechCognizance.html', template: './template/service/highTechCognizance.html', chunks: ['service/highTechCognizance', 'vendors'] }), new HtmlWebpackPlugin({ title: '科技服务-知识产权', filename: 'html/service/propertyRight.html', template: './template/service/propertyRight.html', chunks: ['service/propertyRight', 'vendors'] }), new HtmlWebpackPlugin({ title: '科技服务-高新认定', filename: 'html/service/projectDetails.html', template: './template/service/projectDetails.html', chunks: ['service/projectDetails', 'vendors'] }), new HtmlWebpackPlugin({ title: '科技服务-服务意向', filename: 'html/service/purpose.html', template: './template/service/purpose.html', chunks: ['service/purpose', 'vendors'] }), //newsApp new HtmlWebpackPlugin({ title: '新闻详情', filename: 'html/news/newsDetailApp.html', template: './template/news/newsDetailApp.html', chunks: ['news/newsDetailApp', 'vendors'] }), new HtmlWebpackPlugin({ title: '高企认定', filename: 'html/news/appCognizance.html', template: './template/news/appCognizance.html', chunks: ['news/appCognizance', 'vendors'] }), new HtmlWebpackPlugin({ title: '注册协议', filename: 'html/news/agreement.html', template: './template/news/agreement.html', chunks: ['news/agreement', 'vendors'] }), /* 2018-6 改版后科技需求 */ new HtmlWebpackPlugin({ title: '科技需求', filename: 'html/newMenu/demand.html', template: './template/newMenu/demand.html', chunks: ['newMenu/demand', 'vendors'] }), new HtmlWebpackPlugin({ title: '科技成果', filename: 'html/newMenu/achievement.html', template: './template/newMenu/achievement.html', chunks: ['newMenu/achievement', 'vendors'] }), new HtmlWebpackPlugin({ title: '科技成果列表', filename: 'html/newMenu/achievementList.html', template: './template/newMenu/achievementList.html', chunks: ['newMenu/achievementList', 'vendors'] }), new HtmlWebpackPlugin({ title: '科技需求列表', filename: 'html/newMenu/demandList.html', template: './template/newMenu/demandList.html', chunks: ['newMenu/demandList', 'vendors'] }), new HtmlWebpackPlugin({ title: '科技服务', filename: 'html/newMenu/services.html', template: './template/newMenu/services.html', chunks: ['newMenu/services', 'vendors'] }), new HtmlWebpackPlugin({ title: '科技服务列表', filename: 'html/newMenu/serviceList.html', template: './template/newMenu/serviceList.html', chunks: ['newMenu/serviceList', 'vendors'] }), new HtmlWebpackPlugin({ title: '科技服务详情', filename: 'html/newMenu/serviceDetails.html', template: './template/newMenu/serviceDetails.html', chunks: ['newMenu/serviceDetails', 'vendors'] }) ]; if (!isDev) { //这个使用uglifyJs压缩你的js代码 plugins.unshift(new webpack.DefinePlugin({ "process.env": { NODE_ENV: JSON.stringify("production") } })); plugins.unshift(new webpack.optimize.UglifyJsPlugin({ minimize: true, compress: { warnings: true } })); } let staticHost = 'http://192.168.1.166'; switch (argv.env.deploy) { case 'test': staticHost = 'http://statics.jishutao.com'; break; case 'prod': staticHost = 'http://ss.jishutao.com'; break; default: break; } staticHost = staticHost + '/portal/' + version + '/'; return { entry: isWatch ? entries.watch : entries.prod, output: { path: path.resolve(__dirname, './build/' + argv.env.deploy + '/' + version), filename: '[name].js', publicPath: staticHost, chunkFilename: 'chunks/[name].[hash:8].js' }, module: require('./webpack/module.config.js')(theme), resolve: { extensions: ['.js', '.jsx'], alias:{ 'js':__dirname+'/src/js', 'css':__dirname+'/src/css', 'imgs':__dirname+'/img' } }, plugins: plugins, devServer: { disableHostCheck: true, host: '192.168.1.166', port: 80, allowedHosts: ['127.0.0.1','192.168.1.222'], headers: { "Access-Control-Allow-Origin": "*" } } }; })();