webpack的devServer配置

开发服务器devServer自动化(自动编译、自动刷新、自动打开浏览器等等)
webpack打包demo,git地址:https://github.com/OnionMister/webpack-demo.git

1、目录结构

在这里插入图片描述

2、html,css,js

html、css、js文件内容对照这篇文章完成【webpack打包其他资源,即非js、html、css、jpg等资源,打包字体图表库

3、安装webpack-dev-server

务必完成第二部

cnpm install webpack-dev-server -D

4、webpack.config.js内容

/**
 * 插件使用:下载----引入----使用
 * loader使用:下载----使用
 * 本配置以打包其他资源为基础,做热更新配置
 * 安装处理html的插件:cnpm install html-webpack-plugin -D
 * 安装处理css、其他资源的loader:cnpm install css-loader style-loader file-loader -D
 * 安装webpack和webpack-cli:cnpm insatll webpack webpack-cli -D
 * 安装启动devServer的指令:cnpm install webpack-dev-server -D
 */
// 引入处理html的插件
const HtmlWebpackPlugin = require('html-webpack-plugin');
// 处理静态资源的resolve方法
const {
    resolve
} = require('path');
module.exports = {
    // 入口文件
    entry: './src/index.js',
    output: {
        // 打包后的文件名
        filename: 'bundle.js',
        // 输出路径,__dirname表示当前绝对路径,输出到当前绝对路径的dist下
        path: resolve(__dirname, 'dist'),
    },
    module: {
        rules: [{
                // 处理css
                test: /\.css$/, // 匹配css文件
                use: [
                    // 提取css字符串到创建好的style标签中,并插入的html的head中
                    'style-loader',
                    // 以commonjs规范的字符串打包css到输出的js文件中
                    'css-loader'
                ]
            },
            {
                // 处理其他文件
                exclude: /\.(css|less|sass|html|js|img|png|jpg)$/, // 排除文件,得到其他资源
                use: [{
                    loader: 'file-loader',
                    options: {
                        // [hash10]:10位hash数据,[ext]:文件原本扩展名
                        name: '[hash10].[ext]'
                    }
                }]

            }
        ]
    },
    plugins: [
        // HtmlWebpackPlugin默认创建一个空body的html
        // template配置会将指定目录的html的body的内容拷贝到创建的html的body下
        new HtmlWebpackPlugin({
            template: './src/index.html'
        })
    ],
    mode: 'development', // 开发模式
    // mode:'production',  // 生产模式
    devServer: {
        // 开发服务器devServer自动化配置(自动编译、自动打开浏览器、自动刷新等等)
        // devServer相关配置:https://webpack.js.org/configuration/dev-server/
        // 只会在内存中编译打包,不会输出
        // 启动devServer的指令:npx webpack-dev-server
        contentBase: resolve(__dirname, 'dist'), // 要运行的目录,构建后的目录
        // 启动gzip压缩,提升速度
        compress: true,
        // 指定端口号3030
        port: 3030,
        // 自动打开浏览器
        open: true
    }
}

5、打包完成后运行启动服务命令

打包

webpack

启动服务

npx webpack-dev-server

打包完的结构
在这里插入图片描述
等待自动打开浏览器窗口

6、测试是否热更新

修改js、css、html,会发现页面会自动更新,但是打包的bundle.js并不会有新的内容,这说明npx webpack-dev-server不会输出真实的打包内容,只会再内存中编译打包,一旦终止服务,就相当于什么也没发生。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值