zoukankan      html  css  js  c++  java
  • Webpack 多html入口、devServer、热更新配置

    一、clean-webpack-plugin:

    在每次生成dist目录前,先删除本地的dist文件(每次自动删除太麻烦)

    1、安装clean-webpack-plugin   npm/cnpm i clean-webpack-plugin --save -dev

    2、在我们的webpack.config.js文件中引入

    const  cleanWebpackPlugin=require('clean-webpack-plugin');

    然后在plugs中进行配置

    plugins:[

    new CleanWebpackPlugin(['dist']), //传入数组,指定要删除的目录

    ]

    二、HotModuleReplacementPlugin

    启用[热替换模块(Hot Module Replacement)],也被称为 HMR。

    永远不要在生产环境(production)下启用 HMR

    基本用法(Basic Usage)

    启用 HMR 非常简单,在大多数情况下也不需要设置选项。

    new webpack.HotModuleReplacementPlugin({  // Options...})
    

    选项(Options)

    包含如下选项:

    • multiStep (boolean):设置为true时,插件会分成两步构建文件。首先编译热加载 chunks,之后再编译剩余的通常的资源。
    • fullBuildTimeout (number):当 multiStep 启用时,表示两步构建之间的延时。
    • requestTimeout (number):下载 manifest 的延时(webpack 3.0.0 后的版本支持)。

    这些选项属于实验性内容,因此以后可能会被弃用。就如同上文所说的那样,这些选项通常情况下都是没有必要设置的,仅仅是设置一下 new webpack.HotModuleReplacementPlugin() 在大部分情况下就足够了。

    webpack.config.js

    const path = require("path");  
    const HtmlWebpackPlugin = require('html-webpack-plugin');  
    const CleanWebpackPlugin = require('clean-webpack-plugin');  
    const Webpack = require('webpack');//1热更新  
    module.exports = {  
    // entry:['./src/index.js','./src/index2.js'],  
    entry:{  
    index:'./src/index.js',  
    index2:'./src/index2.js'  
    },  
    output:{  
    path:path.resolve(__dirname,'dist'),  
    filename:'[name].boundle.js'  
    },  
      
            //devServer  
    devServer:{  
    //设置服务器访问的基本目录  
    contentBase:path.resolve(__dirname,'dist'),  
    //服务器ip地址,localhost  
    host:'localhost',  
    port:8090,  
    open:true,//自动打开浏览器  
    hot:true//2热更新  
    },  
      
      
    plugins:[  
    new Webpack.HotModuleReplacementPlugin(),//3热更新  
    new CleanWebpackPlugin(['dist']),//删除dist  
    new HtmlWebpackPlugin({  
    minify:{  
    collapseWhitespace:true,//压缩空白  
    removeAttributeQuotes:true//删除属性双引号  
    },  
    hash:true,//消除缓存,添加版本号  
    template: './src/index.html',//模板地址  
    title: ' Webpack4.x ',  
    filename: 'index.html',//生成多个页面  
    chunks:['index']//多页面分别引入自己的js  
    }),  
    new HtmlWebpackPlugin({  
    hash:true,  
    template:'./src/index2.html',  
    title: '第二个页面',  
    filename:'index2.html',  
    chunks:['index2']  
    })  
    ]  
      
      
    
    }
    
  • 相关阅读:
    ES6 Promise用法讲解
    NPM使用介绍
    Docker学习系列(二):Docker三十分钟快速入门(上)
    Spring Cloud学习(一)
    胖ap和瘦ap的区别
    论网络知识的重要性
    2018 发发发发
    sikuli--前端自动化操作的神器
    更改MySQL数据库的编码为utf8mb4
    数据库mysql的常规操作
  • 原文地址:https://www.cnblogs.com/ysk123/p/10003824.html
Copyright © 2011-2022 走看看