avatar

webpack的plugin

generate-json-webpack-plugin

最近在接触一个新的vue项目的时候, 发现项目初始化的时候回去请求一个json配置文件,但是我在开发本地目录找不到对应的 json 配置, 只有几个内容相似的 js 文件, 遂想是否是 webpack 将 js 文件转换成了 json 文件了, 就去看 webpack 配置文件, 发现一个叫 generate-json-webpack-plugin 的插件:

1
2
3
4
5
6
7
8
9
10
11
12
13
// webpack.config.js
const GenerateJsonPlugin = require('generate-json-webpack-plugin');

module.exports = {
// ...
plugins: [
// ...
new GenerateJsonPlugin('my-file.json', {
foo: 'bar'
})
]
// ...
};

这将会在 webpack 输出目录创建一个名为: my-file.json 的文件, 内容为:

1
{"foo": "bar"}

generate-json-webpack-plugin 插件还能接收第3和第4个参数, 分别为”要替换的内容“ 和 “空格个数“ 功能:

1
2
3
4
5
6
7
8
9
10
11
new GenerateJsonPlugin(
'my-file.json',
{ foo: 'bar', one: 'two' },
(key, value) => {
if (value === 'bar') {
return 'baz';
}
return value;
},
2
)

此时 my-file.json 文件的内容为:

1
2
3
4
{
"foo": "baz",
"one": "two"
}

webpack-dev-middleware

Webpack dev middleware 是 WebPack 的一个中间件。它用于在 Express 中分发需要通过 WebPack 编译的文件。单独使用它就可以完成代码的热重载(hot reloading)功能。

特性:

  • 不会在硬盘中写入文件,完全基于内存实现。
  • 如果使用 watch 模式监听代码修改,Webpack 会自动编译,如果在 Webpack 编译过程中请求文件,Webpack dev middleware 会延迟请求,直到编译完成之后再开始发送编译完成的文件。

webpack-hot-middleware

Webpack hot middleware 它通过订阅 Webpack 的编译更新,之后通过执行 webpack 的 HMR api 将这些代码模块的更新推送给浏览器端。

文章作者: Kwin
文章链接: http://huangkun.host/2020/03/25/20190509-webpack的plugin/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Kwin 's Blog
打赏
  • 微信
    微信
  • 支付宝
    支付宝

评论