zoukankan      html  css  js  c++  java
  • webpack配置篇

    开发环境(development)生产环境(production)的构建目标差异很大。在开发环境中,我们需要具有强大的、具有实时重新加载(live reloading)或热模块替换(hot module replacement)能力的 source map 和 localhost server。而在生产环境中,我们的目标则转向于关注更小的 bundle,更轻量的 source map,以及更优化的资源,以改善加载时间。

    遵循逻辑分离,我们通常建议为每个环境编写彼此独立的 webpack 配置。为了减少重复的代码,将配置中可复用的部分抽离出来。

    1.安装 webpack-merge

    npm install --save-dev webpack-merge

    2.更改目录结构

     webpack.common.js

    const path = require('path');
    const { CleanWebpackPlugin } = require('clean-webpack-plugin');
    const HtmlWebpackPlugin = require('html-webpack-plugin');
    
    
    module.exports = {
        entry: {
            app: './src/index.js'
        },
        output: {
            filename: '[name].bundle.js',
            path: path.resolve(__dirname, 'dist')
        },
        module:{
            rules:[
                {
                    test:/.css/,
                    use:[
                        'style-loader',
                        'css-loader'
                    ]
                }
            ]
        },
        plugins:[
            new CleanWebpackPlugin(),
            new HtmlWebpackPlugin({
                title: 'output management'
            })
        ]
    }

    webpack.dev.js

    const merge = require('webpack-merge');
    const common = require('./webpack.common');
    const webpack = require('webpack');
    
    module.exports = merge(common, {
        mode: 'development',
        devtool: "inline-source-map",
        devServer: {
            contentBase: './dist',
            hot: true,
        },
        plugins: [
            new webpack.NamedModulesPlugin(),
            new webpack.HotModuleReplacementPlugin(),
        ]
    })

    webpack.prod.js

    const merge = require('webpack-merge');
    const common = require('./webpack.common');
    
    module.exports = merge(common,{
        mode: 'production'
    })

     对于开发环境的压缩,在控制台使用 

    • --optimize-minimize 标记将在后台引用 UglifyJSPlugin
    • --define process.env.NODE_ENV="'production'" 将在后台调用与 DefinePlugin 实例。
    • webpack -p 将自动地调用所需要引入的插件。
  • 相关阅读:
    POJ-2528 Mayor's posters 线段树 离散化
    POJ 3468 A Simple Problem with Integers 线段树区间修改
    CodeForces
    POJ3208 Apocalypse Someday 数位DP经典绝世好题
    CodeForces114 Double Happiness 数论 二次筛法 bitset的应用
    P3146 [USACO16OPEN]248 G 区间DP 暴力DP
    【Python学习】requests短连接
    【Windows学习】免登录和自动登录
    【Linux学习】expect远程下载和上传样例
    【Linux学习】软件包管理-wget,rpm,yum,apt-get
  • 原文地址:https://www.cnblogs.com/ceceliahappycoding/p/12249581.html
Copyright © 2011-2022 走看看