webpack中complation用法

Compilation

Compilation 模块会被 Compiler 用来创建新的 compilation 对象(或新的 build 对象)。 compilation 实例能够访问所有的模块和它们的依赖(大部分是循环依赖)。 它会对应用程序的依赖图中所有模块, 进行字面上的编译(literal compilation)。 在编译阶段,模块会被加载(load)、封存(seal)、优化(optimize)、 分块(chunk)、哈希(hash)和重新创建(restore)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
const {RawSource}  = require('webpack').sources;
const fs = require('fs');
const {promisify} = require('util');
const readFile = promisify(fs.readFile);
const path = require('path');

class Plugin1 {
apply(compiler) {
compiler.hooks.thisCompilation.tap('Plugin2',(compilation)=>{
// compilation也有自己的生命周期
// 可以对compilation对象上的资源进行操作
compilation.hooks.additionalAssets.tapAsync('Plugin2', async (callback) => {

const file = await readFile(path.resolve(__dirname,'../src/b.txt'));

// 添加额外的打包资源
compilation.assets['b.txt'] = new RawSource(file);
callback()
});
})
}
}

module.exports = Plugin1;
打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2025 SunZhiqi

此时无声胜有声!

支付宝
微信