webpack-dev-middleware使用手册

在使用webpack进行文件打包的时候,为了开发的便利我们会选择使用webpack-dev-middleware模块。webpack-dev-middleware模块是一个简化开发流程的模块。它有如下特点:

  • 它将打包后的文件直接写入内存,而非硬盘。
  • 每次请求都将获得最新的打包结果

模块的使用

var compiler = require('webpack')({
    output: {
        path: 'd:\\project\\dist'
    }
})
var config = {
  publicPath: '/static/',
  index: '../index.html'
}
var middleware  = require('webpack-dev-middle')(compiler, config)
var app = require('express')()
app.use(middleware)

它依赖两个参数: compiler, configcompiler是webpack生成的实例,webpack-dev-middleware模块每次通过该实例进行文件打包。config是webpack-dev-middleware模块本身的配置对象。它生成的middleware是一个供express使用的中间件。通过该中间件请求打包后的文件,能够取到内存中的打包结果。

更多细节

  • 通过请求的URL分析出文件的具体路径。对于一个请求${publicPath}js/target.js,它会读取文件${output.path}\\js\\target.js。如果文件不存在,它将不会对此请求进行处理。(output.path为webpack打包后的输出目录,publicPath为webpack-dev-middle模块的配置)。比如webpack将文件打包到 d:\\project\\dist\\publicPath配置为/static/。请求的URL为/static/js/target.js时,webpack-dev-middleware模块会读取文件d:\\project\\dist\\js\\target.js
  • 如果URL请求的不是具体文件而是目录,它会读取文件${output.path}${index}(index为webpack-dev-middle模块的配置)。比如比如webpack将文件打包到 d:\\project\\dist\\publicPath配置为/static/index配置为../index.html。请求的URL为/static/时,它会读取文件d:\\project\\index.html
  • 模块会监听文件,当源文件内容发生变动时,会重新打包文件。在lazy模式下,只会在每次请求时重新打包文件,而不监听文件变化。
  • 更多模块配置参数介绍
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • GitChat技术杂谈 前言 本文较长,为了节省你的阅读时间,在文前列写作思路如下: 什么是 webpack,它要...
    萧玄辞阅读 12,721评论 7 110
  • 原文首发于:Webpack 3,从入门到放弃 Update (2017.8.27) : 关于 output.pub...
    昵称都被用完了衰阅读 1,925评论 4 19
  • webpack 介绍 webpack 是什么 为什么引入新的打包工具 webpack 核心思想 webpack 安...
    yxsGert阅读 6,515评论 2 71
  • 写在开头 先说说为什么要写这篇文章, 最初的原因是组里的小朋友们看了webpack文档后, 表情都是这样的: (摘...
    Lefter阅读 5,330评论 4 31
  • 醉人的秋天 是个丰收的季节 金黄的稻谷装进了黑夜 秋天的阳光, 照亮了成熟地果子 把枝头压得沉甸甸 丰收的喜悦 母...
    花好月圆_c576阅读 368评论 10 14