webpack的钩子函数有哪些
时间: 2023-11-11 09:32:55 浏览: 37
Webpack提供了很多钩子函数,可以通过这些钩子函数来执行插件的逻辑。以下是Webpack的一些常用钩子函数:
1. `entryOption`:在Webpack配置中的`entry`选项被解析之后、执行插件之前调用,可以通过该钩子函数修改Webpack配置的入口。
2. `afterPlugins`:在插件被初始化后调用,此时可以访问所有的插件实例。
3. `afterResolvers`:在Webpack的解析器被初始化之后调用,此时可以访问所有的解析器实例。
4. `beforeRun`:在Webpack开始编译之前调用,此时可以访问Webpack的`Compiler`实例。
5. `run`:在Webpack开始编译的时候调用,此时可以访问Webpack的`Compiler`实例。
6. `compilation`:在每次编译时创建新的编译实例时调用,通过这个钩子函数可以访问到每次编译的相关信息。
7. `emit`:在Webpack将文件写入输出目录之前调用,此时可以访问到输出的文件列表。
8. `done`:在Webpack完成编译之后调用,此时可以访问编译结果。
以上只是一部分常用的Webpack钩子函数,具体的钩子函数还有很多,可以根据具体需求进行选择。
相关问题
我想在webpack的chainWebpack中,等到打包完成抛出哪个钩子函数啊
在webpack的`chainWebpack`中,可以通过`tap`方法来注册各种钩子函数。若要在打包完成后抛出钩子函数,可以使用`afterEmit`钩子函数。具体操作如下:
```javascript
chainWebpack: config => {
// 注册afterEmit钩子函数
config
.plugin('afterEmit')
.use(function () {
this.hooks.afterEmit.tapAsync('afterEmit', function (compilation, callback) {
console.log('打包完成啦!');
callback();
});
});
}
```
上述代码中,在`afterEmit`钩子函数中,使用了`tapAsync`方法来注册了一个异步的钩子函数,其名称为`afterEmit`。在该钩子函数中,我们可以打印出`打包完成啦!`这个信息,来证明该钩子函数已经被成功调用了。
我使用的是umijs3;我想在webpack的chainWebpack中,等到打包完成抛出哪个钩子函数啊
在`chainWebpack`中,可以使用`webpack`提供的`done`钩子函数来等待打包完成后抛出事件。具体代码如下:
```javascript
chainWebpack: config => {
config
.plugin('done')
.tap(() => {
process.emit('webpackDone'); // 抛出自定义事件
});
}
```
这里使用`process.emit`方法抛出一个自定义事件,事件名为`webpackDone`,你可以在其他地方监听这个事件来执行你想要的操作。例如:
```javascript
process.on('webpackDone', () => {
console.log('webpack 打包完成');
// 执行其他操作
});
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)