Webpack의 Tapable
-
웹팩의 핵심 유틸리티
-
유사한 플러그인 인터페이스 제공을 위해, 다른 곳에서도 사용 할 수 있다.
-
웹팩의 많은 객체가
Tapable
클래스를 확장한다. -
Tapable 클래스가 제공하는 tap, tapAsync, tapPromise 메소드를 플러그인에서 사용하여 컴파일 과정에서 실행될 커스텀 빌드 단계를 삽입 할 수 있다.
-
웹팩 플러그인을 거창하게 생각하지 말 것. 웹팩의 번들링 생명 주기 내에서 실행되는 여러 함수 중 하나. 결국 tab 의 두번째 인자로 전달하는 콜백이 플러그인의 핵심.
-
웹팩은 Tapable 을 사용하여, 자체 컴파일 프로세스의 여러 단계에 훅을 제공한다. 이를 통해 개발자들은, 웹팩의 다양한 컴파일 단계에 플러그인을 꽂을 수 있음
// https://webpack.js.org/contribute/writing-a-plugin/
class MyExampleWebpackPlugin {
apply(compiler) {
compiler.hooks.emit.tapAsync(
'MyExampleWebpackPlugin',
(compilation, callback) => {
console.log('This is an example plugin!');
callback();
}
);
}
}