webpack-dev-server 使用 hash

在 webpack-dev-server 中使用 hash 需要借助 html-webpack-plugin 工具。

步骤如下:

注意:这里只列出差异的地方,全部配置请参照另一篇文章
http://blog.csdn.net/hsl0530hsl/article/details/78419693

首先,在项目的根目录下,新建一个 temp html 文件,之前的 index.html 可以删除了。

index.temp.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Test webpack</title>
</head>
<body>
    <h3>This is my first test.</h3>
</body>
</html>

然后,在 package.json 中引入这个 plugin:

“html-webpack-plugin”: “^2.30.1”

其次,修改 webpack 的配置文件:
(主要是引入这个 Plugin,然后 new 出来)
webpack.config.js

/**
 * Created by DreamCatcher on 2017/11/1.
 * 如果没有这个配置文件,需要使用如下命令手动打包:node_modules\.bin\webpack js\requireAddDiv1.js dist\bundle.js
 * 如果有这个配置文件,只需要使用如下命令就可以了:node_modules\.bin\webpack
 */
var webpack = require("webpack");
var HtmlWebpackPlugin = require("html-webpack-plugin");
module.exports = {
    devtool: "eval-source-map",//生成Source Maps
    entry: "./js/requireAddDiv1.js",
    output: {
        path: __dirname + "/dist",
        filename: "bundle-[hash].js"
    },
    devServer: {
        contentBase: "./",//本地服务器所加载的页面所在的目录
        historyApiFallback: true,//不跳转
        inline: true,//实时刷新
        hot: true
    },
    module: {
        /*在webpack2.0版本已经将 module.loaders 改为 module.rules 为了兼容性考虑以前的声明方法任然可用,
      同时链式loader(用!连接)只适用于module.loader,
      同时-loader不可省略
      */
        /*loaders: [
            {
                test: /(\.jsx|\.js)$/,
                loader: "babel-loader"
            },
            {
                //test: /\.\/css\/*\.css$/,//这种方式精确定位
                test: /\.css$/,
                loader: "style-loader!css-loader"
            }
        ],*/
        rules: [
            /*{
                test: /(\.jsx|\.js)$/,
                use: {
                    loader: "babel-loader"
                },
                exclude: /node-modules/ //注意这里没有使用引号
            },*/
            {
                test: /\.css$/,
                use: [ //引入多个loader的方法
                    "style-loader",
                    {
                        loader: "css-loader",
                        options: {
                            // modules: true // 设置css模块化,详情参考https://github.com/css-modules/css-modules
                        }
                    },
                    /*{
                        loader: 'postcss-loader',
                        // 在这里进行配置,也可以在postcss.config.js中进行配置,详情参考https://github.com/postcss/postcss-loader
                        options: {
                            plugins: function () {
                                return [
                                    require('autoprefixer')
                                ];
                            }
                        }
                    }*/
                ]
            }
        ]
    },
    plugins: [
        new webpack.BannerPlugin('版权所有,盗版必究!'),
        new HtmlWebpackPlugin({
            template: __dirname + "/index.temp.html"//new 一个这个插件的实例,并传入相关的参数
        })
    ]
};

最后运行 package.json 中的 start 方法,可以在 output 目录中看到三个文件:
boudle.js 和 index.html 以及一个带有 hash 值的 boudle.[hash].js

运行 package.json 中的 server 脚本,就可以在页面上查看具体的效果。

这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值