how2j.cn

-->
下载区
文件名 文件大小
webpack-demo.rar 931b

解压rar如果失败,请用5.21版本或者更高版本的winrar

点击下载 winrar5.21
步骤 1 : webpack-dev-server 是什么   
步骤 2 : 安装   
步骤 3 : 运行   
步骤 4 : 显示页面   
步骤 5 : 端口   
步骤 6 : 热更新   
步骤 7 : 热更新测试   
步骤 8 : html 和 css 更新   
步骤 9 : 可运行项目   

步骤 1 :

webpack-dev-server 是什么

edit
在前面的例子里,是直接通过浏览器打开 index.html 的页面,这种情况与实际的项目是有区别的,因为实际项目通常都会是在一个服务器上打开 index.html.
webpack-dev-server 是什么呢? 它其实就是一个微服务器,运行它,也就启动了一个 web 服务器,可以方便地从服务器上打开这个 index.html 了
因为本系列教程里, webpack 是用 cnpm 安装的 1.32.2,考虑到兼容性, webpack-dev-server 也不会安装最新版本,而是与之兼容的版本: webpack-dev-server@1.15.0。
如图所示,运行如下命令进行全局安装

cnpm install -g webpack-dev-server@1.15.0
安装
运行如下命令:

webpack-dev-server --open

会自动打开与 http 协议关联的浏览器,并显示默认的 index.html 页面。
运行
如图所示,会显示如下地址的访问:

http://localhost:8080/webpack-dev-server/

因为web 服务器总会默认访问 index.html页面,所以就看到了如图所示的效果
显示页面
默认访问的是8080端口,如果这个端口被占用了,那可以自定义其他端口。
修改 webpack.config.js 为如下代码。
然后重新运行

webpack-dev-derver --open

就会在如图所示的8088端口启动服务器了。
端口
module.exports = { entry: './a.js', output: { filename: 'bundle.js' }, devServer: { port:8088 } }
module.exports = {
    entry: './a.js',
    output: {
        filename: 'bundle.js'
    },
    devServer: {
        port:8088
    }
}
webpack-dev-server 支持热更新。 所谓的热更新,即在 webpack.config.js 中的 entry 文件 ( a.js ) 发生了改变之后,会自动运行 webpack, 并且自动刷新页面,立即看到修改之后的效果。
为了做到这一点,需要修改 webpack.config.js 文件。
这个文件中导入了 webpack 模块

var webpack = require('webpack')

因为 webpack 模块是全局的,在某些情况下,通过这种方式导入不能够被识别,需要进行一次链接:

npm link webpack

然后把随后把 webpack.config.js 文件的内容更新如下代码所示。
热更新
var webpack = require('webpack') module.exports = { entry: './a.js', output: { filename: 'bundle.js' }, plugins:[ new webpack.HotModuleReplacementPlugin() ], devServer: { port:8088, inline:true, hot:true } }
var webpack = require('webpack')
module.exports = {
    entry: './a.js',
    output: {
        filename: 'bundle.js'
    },
   plugins:[
        new webpack.HotModuleReplacementPlugin()
    ],
   devServer: {
        port:8088,
        inline:true,
        hot:true
    }
}
重新启动 webpack-dev-server

webpack-dev-server --open

随便改动一下 a.js 代码,会看到无需刷新 html 页面,自动看到最新的效果。
热更新测试
步骤 8 :

html 和 css 更新

edit
因为 webpack-dev-server 的热更新是基于 entry 入口的文件: a.js。
那么即便 html 和 css 更新了,也不会被监视到。
但是要监视 html 和 css 的更新也是可以的,请。。。。自行百度 livereload~
站长嫌麻烦。。。就没做这个了,反正都要自己 F5 刷新一下,心里才放心~
在右上角有本知识点对应的可运行项目下载 ,实在自己搞不出来,就下载解压出来比较一下。


HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


问答区域    
2024-08-01 关于 webpack 和 webpack-dev-server 兼容的问题
虚心求学

如果前面按照 webpack 使用的是3.0版本,那么 webpack-dev-server 可以使用 2.X版本: 这里 webpack@3.0 和 webpack-dev-server@2.11.2 是兼容的,亲测有效,热更新也有效。 webpack与webpack-dev-server版本适配对照标表: 在使用webpack时 webpack 3.x 要使用 webpack-dev-server 2.x webpack 4.x 要使用 webpack-dev-server 3.x







回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2023-09-12 热更新问题
旧时亭台阁

按照站长步骤6做的设置,启动后会报错 Use compiler.plugin("compilation", function(compilation, data) { data.normalModuleFactory.plugin("parser", function(parser, options) { parser.plugin(/* ... */); }); }); instead. 经过测试,完成步骤5之后,后面的步骤都不需要了,此时 已经支持热更新了







回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2021-03-20 npm link webpack报错
2021-01-17 热更新问题
2020-11-23 webpack-dev-server --open 热更新测试报错 Cannot find module 'webpack'


提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 5 条以前的提问,请 点击查看

提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 前端部分-webpack-webpack-dev-server 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 578362961
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: https://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图