Quickeryi / note

学习记录
2 stars 0 forks source link

webpack:热加载 #9

Open Quickeryi opened 7 years ago

Quickeryi commented 7 years ago

webpack热加载方案

在前端自动化过程中,热加载功能是必不可少的,它能极大的提升开发效率,帮助开发人员快速实现所见即所得~ 👍 下面记录以下集中方案,每种方案都有各自的特点,选择适合符合自己业务需求的,才是最好的!

方案一:启动监听模式

webpack自带监听模式watch,这是种模式非常简单易用,只需要在命令行执行webpack时,加上参数即可,如下:

$ webpack --watch

# 如果编译时,希望输出内容带有进度和颜色,可以像下面这样使用
$ webpack --watch --colors --progress

方案二:webpack-dev-server

webpack-dev-server 提供了一个易于部署的开发服务器,具有快速的实时重载(live reloading)功能,总体来说,它完美的解决了第一种方案的两个缺点,使用方式如下:

# 下载安装 webpack-dev-server
$ npm install webpack-dev-server;

# 使用方式一:webpack-dev-server CLI(命令行参数调用)
$ webpack-dev-server --content-base <base path for the content> --open --inline --hot --compress

# 使用方式二:webpack-dev-server 配置(webpack.config.js)
const devServer = require('webpack-dev-server');
module.exports = {
   //....
   devServer: {
       contentBase: <告诉服务器从哪里提供内容>,
       proxy: <对于一些前后端分离开发项目,此处可以代理自己的api服务器>
       //........
   }
};

方案三:Express + webpack-dev-middleware

这是一种进阶方案,其实webapck-dev-server就是基于这种方案的,只不过它已经封装好了,开箱即用,如果你已经有一个 Node.js 服务器或者你想要完全控制服务器,这将很实用,而且自己编写会获得极大的灵活性。这里就不过多解释了。

写在最后

大部分人在看官方文档时,肯定会被webapck-dev-server webpack-dev-middleware webpack-hot-middleware这几个概念弄晕,下面简明扼要的说一下它们分别是啥,并彼此有啥关系吧!