0부터 웹 패키지 플러그인 만들기
2759 단어 webpack
웹 패키지 플러그인은 로더가 해결할 수 없는 문제를 해결하는 데 사용됩니다.
웹팩의 사용에서 볼 수 있듯이 웹팩 플러그인은 하나의 구조 함수로 하나의 매개 변수 설정 대상을 수신하기 때문에 우리는 먼저 정의할 수 있다.
function myWebpackPlugin(config){
...
}
웹 패키지 플러그인을 인쇄하면 발견할 수 있습니다
다음은 오래된 버전의 실현입니다. 새로운 버전은 hooks를 사용하세요.
웹 패키지 플러그인은 주로 두 개의 대상인compiler와compilation을 사용합니다.
설명:
compiler::웹 패키지 환경 설정이 포함되어 있으며 웹 패키지가 플러그인을 호출할 때,compiler 대상을 되돌려 플러그인에 제공합니다.
4
compilation: 컴파일 과정의 생명 주기입니다. 이 대상은 모든 모듈과 그들의 의존에 접근할 수 있습니다.(compilation [.kɒmpə'leɪʃ(ə)n]n 컴파일하기;편집;어셈블리)
4
웹 패키지 플러그인 원형에 apply 방법이 있습니다.compiler 대상을 받아들여 웹 apck에서 방송된 이벤트를 감청합니다.
myWebpackPlugin.prototype.apply = function(compiler){
...
}
상기 세 가지 기본 핵심점에서 웹 패키지 플러그인 불러오는 절차를 정리합니다
웹팩이 시작된 후:
먼저 new webpackPlugin(options)을 실행하고 실례 webpackPlugin을 획득한다.
그런 다음 WebpackPlugin을 호출합니다.apply(compiler)가 플러그인에 실례적으로compiler 대상을 전송하기;
마지막으로compiler를 통과합니다.plugin (이벤트 이름, 리셋 함수) 은 웹 패키지에서 방송된 이벤트를 감시합니다.
웹apck 플러그인 기본 구조:
function compilerTest (options) {
}
compilerTest.prototype.apply = function (compiler) {
compiler.plugin('compilation', function (compilation) {
compilation.plugin("optimize", function() {
console.log(" ");
});
})
}
module.exports = compilerTest
다음은 이벤트 흐름을 살펴보겠습니다.
냉각 라인 모델:
Webpack , 。
, , 。
, 。
compiler 방송 및 감청 사건의 실현
/**
*
* event-name ,
* params
*/
compiler.apply('event-name',params);
/**
* event-name , event-name , 。
* params 。
*/
compiler.plugin('event-name',function(params) {
});
Compilation의 실현은compiler와 같다
웹acpk 플러그인 실례: (지속적인 업데이트)
참조:
https://www.jianshu.com/p/f96c6a69515d
https://segmentfault.com/a/1190000012840742
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Qiita API v2를 Ajax에서 사용하기위한 webpack 설정 (로컬 개발 환경 전용)에서는 Qiita의 기사 목록, 사용자 세부 정보, 기사를 '좋아요'한 사람 목록 및 재고가 있는 사람 목록을 검색할 수 있습니다. Qiita 화면에서 기사를 재고한 사람을 볼 수 없기 때문에 API를 통해 기사를 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.