当前位置 : 主页 > 网络编程 > JavaScript >

webpack.config.js

来源:互联网 收集:自由互联 发布时间:2021-06-30
webpack.config.js const webpack = require('webpack')const htmlWebpackPlugin = require('html-webpack-plugin')const ExtractTextPlugin = require('extract-text-webpack-plugin');var autoprefixer = require('autoprefixer');var BrowserSyncPlugin =
webpack.config.js
const webpack = require('webpack')
const htmlWebpackPlugin = require('html-webpack-plugin')
const ExtractTextPlugin = require('extract-text-webpack-plugin');
var autoprefixer = require('autoprefixer');
var BrowserSyncPlugin = require('browser-sync-webpack-plugin'); //热更新插件
var WebpackDevServer = require("webpack-dev-server"); //webpack server 服务
var path = require('path')


module.exports = {
    entry: {

        common: ['./static/js/main.js'],
        index: ["./static/js/index.js"]

    },
    output: {
        filename: 'js/[name].js?version=[chunk]',
        path: __dirname + '/dist/static/', //文件生产存放的路径
        publicPath: 'http://localhost:8080/static/' //生产环境可以使用绝对路径 例如http://www.cdn.com/
            //publicPath: '/dist/static/'
    },
    devServer: {
        historyApiFallback: true,
        // contentBase: "./",
        hot: true,
        inline: true,
        stats: { colors: true },
        proxy: {
            '/api': {
                target: 'http://localhost:8050/index.php/api/',
                pathRewrite: { '^/api': '' },
                changeOrigin: true
            }
        }
    },
    module: {
        rules: [{
            test: /\.css$/,
            use: ExtractTextPlugin.extract({
                fallback: 'style-loader',
                publicPath: '../',
                use: [{
                    loader: 'css-loader',
                    options: {
                        minimize: true, // css压缩,
                        importLoaders: 1,

                    }
                }, {
                    loader: 'postcss-loader',
                    options: {
                        plugins: (loader) => [
                            require('autoprefixer')({
                                broswers: ['last 5 versions']
                            })
                        ]
                    }
                }]
            })
        }, {
            test: /\.(png|gif|jpe?g)$/,
            loader: 'url-loader',
            query: {
                limit: 3500,
                name: 'images/[name].[ext]'
            }
        }, {
            // 文件加载器,处理文件静态资源
            test: /\.(woff|woff2|ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
            loader: 'file-loader',
            query: {
                limit: 1000,
                name: 'fonts/[name].[ext]'
            }
        }, {
            test: /\.js$/,
            loader: 'babel-loader', //
            exclude: /node_modules/ // 需要排除的目录
        }]
    },
    plugins: [
        new htmlWebpackPlugin({
            filename: __dirname + '/dist/index.html',
            template: 'html-withimg-loader!' + "./index.html",
            chunks: ['common', 'index'],
            minify: { //压缩HTML文件
                // removeComments: true, //移除HTML中的注释
                // collapseWhitespace: true //删除空白符与换行符
            }
        }),
        new htmlWebpackPlugin({
            filename: __dirname + '/dist/protocol.html',
            template: 'html-withimg-loader!' + "./protocol.html",
            chunks: ['common']
        }),
        new htmlWebpackPlugin({
            filename: __dirname + '/dist/product_center.html',
            template: 'html-withimg-loader!' + "./product_center.html",
            chunks: ['common']
        }),
        new htmlWebpackPlugin({
            filename: __dirname + '/dist/solution.html',
            template: 'html-withimg-loader!' + "./solution.html",
            chunks: ['common']
        }),
        new webpack.optimize.UglifyJsPlugin({
            compress: {
                // warnings: false
            }
        }),
        new ExtractTextPlugin('css/bundle.min.css?version=[hash]'),
        new webpack.HotModuleReplacementPlugin(), //热加载插件
        new webpack.NoErrorsPlugin(),
        new webpack.DefinePlugin({
            'process.env.NODE_ENV': '"development"'
        })

    ]
}
上一篇:nodemailer.js
下一篇:NPM_Webpack.Txt
网友评论