在开发中,咱们均可以发现仅仅使用Webpack以及它的命令行工具来进行开发调试的效率并不高,每次编写好代码以后,咱们须要执行npm run build命令更新js文件,而后再刷新页面,才能看到更新效果。webpack-dev-server正好解决了这个问题,是一款便捷的本地开发工具。webpack
用如下命令进行安装:web
npm install webpack-dev-server --save-dev
--save-dev:将webpack-dev-server保存配置信息到pacjage.json的devDependencies(开发环境依赖)节点中。这样作是由于webpack-dev-server仅仅在本地开发时才会用到,在生产环境中并不须要它 。项目上线的时候,要进行依赖安装,就能够经过npm install--production过滤掉devDependencies中的冗余模块,从而加快安装和发布的速度。npm
为了便捷地启动webpack-dev-server,咱们在package.json中添加一个dev指令:json
"scripts": { "build": "webpack", "dev": "webpack-dev-server --open" //open是自动执行后打开页面 }
最后,对webpack.config.js添加一个devServer对象,它是专门用来放webpack-dev-server配置的,webpack-dev-server能够看做一个服务者,它的主要工做就是接收浏览器的请求,而后将资源返回。当服务启动时,会先让Webpack进行模块打包并将资源准备好(在示例中就是bundle.js)。当webpack-dev-server接收到浏览器的资源请求时,它会首先进行URL地址校验。若是该地址是资源服务地址(上面配置的publicPath),就会从Webpack的打包结果中寻找该资源并返回给浏览器。反之,若是请求地址不属于资源服务地址,则直接读取硬盘中的源文件并将其返回api
"devServer": { "publicPath": './dist', "port": 3000 }
这里有一点须要注意。直接用Webpack开发和使用webpack-dev-server有一个很大的区别,前者每次都会生成budnle.js,而webpack-dev-server只是将打包结果放在内存中,并不会写入实际的bundle.js,在每次webpack-dev-server接收到请求时都只是将内存中的打包结果返回给浏览器。浏览器
webpack-dev-server还有一项很便捷的特性就是live-reloading(自动刷新)。当咱们修改了内容以后,切换到浏览器你会发现,浏览器内容也变化了。webpack-dev-server