webpack devServer 热加载没用?

发布于 2022-09-04 10:23:11 字数 940 浏览 13 评论 0

//webpack.config.js
     devtool: 'eval-source-map',

    entry: __dirname + "/component/index.js",

    output:{
        path:__dirname+'/bundle',
        filename:'bundle.js'
    },

    devServer:{
        colors:true,
        historyApiFallback:true,
        inline:true,
        hot:true,
        port:9000
    },
    
    //package.json
     "start": "webpack-dev-server --inline --hot --content-base"

文件目录如下
图片描述

//index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div id="__react-content"></div>
    <script src="../bundle/bundle.js"></script>
</body>
</html>

我发现每次修改文件后终端会显示重新打包 是不是html引入有问题?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

走走停停 2022-09-11 10:23:11

为啥没用?没用的表现是啥?

小ぇ时光︴ 2022-09-11 10:23:11

先确定自己webpack-dev-server这个插件下载没。。

然后在config.js中,加

**var webpack = require('webpack');**

module.exports = {

    entry: __dirname + "/component/index.js",

    output:{
        path:__dirname+'/bundle',
        filename:'bundle.js'
    },
   
    **plugins: [
        new webpack.HotModuleReplacementPlugin()
    ],**
    devServer:{
        colors:true,
        historyApiFallback:true,
        inline:true,
        hot:true,
        port:9000
    },

}
应该就可以了,localhost:9000/就是启动后的页面
献世佛 2022-09-11 10:23:11

看你的配置webpack.config.js文件好像确实一些必要的配置,

var path = require('path');
var webpack = require('webpack');

module.exports = {
    entry: ['webpack/hot/dev-server', path.resolve(__dirname, './app/main.js')],
    output: {
        path: path.resolve(__dirname, './build'),
        filename: 'bundle.js',
        // publicPath:'./' //打包后的路径引用问题,
    },
   ....
    plugins: [
        new webpack.optimize.OccurenceOrderPlugin(true), //热更新替换插件
        new webpack.HotModuleReplacementPlugin(),     //替换 webpack-dev-server
    ],
    devServer: {
        contentBase: "./build",//本地服务器所加载的页面所在的目录
        colors: true,//终端中输出结果为彩色
        historyApiFallback: true,//不跳转
        inline: true,//实时刷新
        hot: true,
        port:"7000",
        Info:true
    }
};

你可以这样配置文件试试,记得在入口文件配置'webpack/hot/dev-server'

一笔一画续写前缘 2022-09-11 10:23:11

因为我之前使用了webpack命令生成了bundle,js文件 ,然后index.html一直在调用bundle.js对于是相对于index.html存在的真实文件,webpack-dev-server打包的是一个内存文件,他没有去访问者所以才导致的这个情况

<script src="http://localhost:9000/webpack-dev-server.js"></script>
    <script src="http://localhost:9000/bundle.js"></script>
寒冷纷飞旳雪 2022-09-11 10:23:11

webpack.config.js

entry    : {
        main: [
            './app/app.js',
            'webpack-dev-server/client?http://localhost:8089',
            'webpack/hot/only-dev-server'
        ]
    },
    output   : {
        publicPath: 'http://localhost:8089/',
        filename: './dist/js/bundle.js'
    },

index.html中添加

<script src="http://localhost:8089/webpack-dev-server.js"></script>

具体可以看看我的项目https://github.com/Hancoson/r...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文