• react_webpack.prod.config


    const path = require('path');
    const webpack = require('webpack');
    const jquery = require('jquery');
    const HtmlWebpackPlugin = require('html-webpack-plugin');
    const ExtractTextPlugin = require("extract-text-webpack-plugin");
    const UglifyJSPlugin = require('uglifyjs-webpack-plugin');
    
    module.exports = {
        entry: ['./src/app.js'],
        output: {
            path: path.join(__dirname, 'dist'),
            publicPath: "/dist",
            filename: 'js/app.js'
        },
        module: {
            rules: [
                {
                    test: /.js[x]?$/,
                    exclude: /(node_modules)/,
                    use: {
                        loader: 'babel-loader',
                        options: {
                            presets: ['env', 'react'],
                            plugins: [
                                [
                                    "import",
                                    [
                                        {
                                            "libraryName": "antd",
                                            "style": true
                                        }
                                    ]
                                ]
                            ]
                        }
                    }
                },
                {
                    test: /.css$/,
                    loader: ExtractTextPlugin.extract({
                        use: "css-loader",
                        fallback: "style-loader"
                    })
                },
                {
                    test: /.scss$/,
                    loader: ExtractTextPlugin.extract({
                        use: 'css-loader!sass-loader',
                        fallback: 'style-loader'
                    })
                },
                {
                    test: /.less$/,
                    loader: ExtractTextPlugin.extract({
                        use: [{
                            loader: 'css-loader'
                        }, {
                            loader: 'less-loader',
                            options: {
                                javascriptEnabled: true,
                                modifyVars: {
                                    '@icon-url': '"~antd-iconfont/iconfont"',
                                }
                            }
                        }],
                        fallback: 'style-loader'
                    })
                },
                {
                    test: /.(gif|jpg|png|woff|svg|eot|ttf)??.*$/,
                    use: [{
                        loader: 'url-loader',
                        options: {
                            name: '[path][name].[ext]',
                            limit: 2000
                        }
                    }]
                }
            ]
        },
        resolve: {
            alias: {
                node_modules: path.join(__dirname, '/node_modules'),
                component: path.join(__dirname, '/src/component'),
                util: path.join(__dirname, '/src/util'),
                page: path.join(__dirname, '/src/page'),
                service: path.join(__dirname, '/src/service'),
                modals: path.join(__dirname, '/src/modals'),
                styles: path.join(__dirname, '/src/styles'),
                images: path.join(__dirname, '/src/images'),
                reduxModel: path.join(__dirname, '/src/reduxModel')
            }
        },
        plugins: [
            new webpack.optimize.CommonsChunkPlugin({
                name: 'common',
                filename: 'js/base.js'
            }),
            new HtmlWebpackPlugin({
                template: './src/index.html',
                filename: 'index.html',
                //favicon: './favicon.ico'
            }),
            new ExtractTextPlugin("[name].css"),
            new webpack.ProvidePlugin({
                _: 'lodash',
                $: 'jquery',
                jQuery: 'jquery'
            }),
            new UglifyJSPlugin({
                cache: true,
                parallel: 2
            }),
            new webpack.DefinePlugin({
                'process.dev.NODE_ENV': JSON.stringify('production')
            })
        ],
        devServer: {
            port: '8088', //设置端口号
            historyApiFallback: {
                index: '/dist/index.html'
            },
            open: true,
            proxy: {
                '/react-redux-api/*': {
                    target: 'http://localhost:3000',
                    secure: false
                },
                '/api/*': {
                    target: 'http://localhost:12306',
                    secure: false
                }
            }
        }
    };
  • 相关阅读:
    JavaScript 正则表达式中的特殊字符
    framework —— throttles(访问频率控制)
    framework —— permission(权限)
    framework —— auth认证
    算法——基础知识
    算法——解迷宫
    算法
    爬虫 ==》 同步调用
    asyncio模块
    Requests模块
  • 原文地址:https://www.cnblogs.com/Nyan-Workflow-FC/p/9208934.html
Copyright © 2020-2023  润新知