인터뷰 -webpack 기사의 프런트 엔드

테스트 사이트 :

만 중산층을 위해, 아마 아래의 몇 가지 분류

  • 웹팩은 무엇입니까
  • 핵심 개념
  • 의 단숨에, 툴툴 차이점
  • 포장 공정
  • 수요로드를 달성하는 방법
  • 당신은 일반적으로 프로젝트가 쓴 할 웹팩

웹팩은 무엇입니까

웹팩는 인 정적 프로세서 모듈 은 응용 프로그램을 처리 할 때, 재귀 적 구성, 종속성 그래프 각 모듈은 원하는 애플리케이션, 모든 이러한 모듈은 하나 개 이상의 패키지로 패키지를 포함하는이.

핵심 개념

  • 항목 (항목)

웹팩 당신이 시작 내부 의존성 그래프로 사용하고자하는 모듈 이야기

  • 출력 (종료)

를 구축하고, 파일 이름을 지정하는 방법을 어디 웹팩 출력 번들에게

  • 짐을 싣는 사람

JS 파일을 비 처리, 웹팩 처리 할 수있는 모듈로 파일 변환

로더는 두 가지 속성이 있습니다

- test 属性,用于标识出应该被对应的 loader 进行转换的某个或某些文件。
- use 属性,表示进行转换时,应该使用哪个 loader。
复制代码
  • 포장 최적화 및 압축, 모든 방법에서 플러그인은 환경 변수를 재정의합니다. 매우 강력한 플러그인 인터페이스는 다양한 작업을 처리하는 데 사용할 수 있습니다.
const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');  //引入plugin

module.exports = {
  // JavaScript 执行入口文件
  entry: './main.js',
  output: {
    // 把所有依赖的模块合并输出到一个 bundle.js 文件
    filename: 'bundle.js',
    // 输出文件都放到 dist 目录下
    path: path.resolve(__dirname, './dist'),
  },
  module: {
    rules: [
      {
        // 用正则去匹配要用该 loader 转换的 CSS 文件
        test: /\.css$/,
        use: [
            {loader: MiniCssExtractPlugin.loader},
            'css-loader',
        ],
      }
    ]
  },
  plugins: [
      new MiniCssExtractPlugin({
          filename: `[name]_[contenthash:8].css`,
          chunkFilename: '[id].css',
      })
  ]
};
复制代码
  • 기준 치수:

모든 웹팩 모듈에 모듈, 모듈은 파일에 해당합니다. 웹팩은 반복적으로 엔트리에서 시작하는 모든 종속 모듈을 찾을 구성됩니다.

  • 큰 덩어리

코드 블록, 합병 및 분할을위한 청크 만든 모듈의 코드, 복수의 조합.

의 단숨에, 툴툴 차이점

꿀꿀 거리는 소리

기성품의 다수가 있습니다 플러그 - 그것은 일반적인 작업을 캡슐화뿐만 아니라 의존하는 작업을 자동화, 작업 간의 종속성을 관리 할 수

들이 켜다

이 빌드 도구를 기반으로 자동화 흐름입니다. 작업의 관리 및 실행뿐만 아니라, 모니터는 파일 읽기 및 쓰기 파일을 지원합니다. 꿀꺽이 가능한 거의 모든 시나리오를 구성 할 수 있습니다 만 다음 다섯 개 가지 방법으로, 매우 단순하게 설계되어 있습니다 :

  • 작업을 등록 gulp.task으로;
  • 작업은 gulp.run에 의해 수행된다
  • gulp.watch 모니터 파일 변경으로;
  • gulp.src하여 파일을 읽기;
  • gulp.dest 쓰기 파일에 의해.

인서트 사이를 통과 할 수 흐름을 연결하는 통상 처리 흐름의 목록을 제공하는 동시에 단숨에 가장 중요한 특징은 흐름의 개념을 도입한다. 꿀꺽의 장점은 모두의 구축과 혼자 다른 도구에 사용할 수있는, 사용하기 쉬운, 아직 유연하다.

툴툴 거리는 소리와 꿀꺽는 작업 기반 및 스트리밍 (작업, 스트림)의이다. 그 작업, 업데이트 된 데이터 스트림을 유사하게 jQuery를하는 발견 (또는 클래스) 파일, 체인의 시리즈 전체는 여러 작업이 전체 웹 빌드 프로세스를 포함하는 체인 작업을 구성합니다. 단점은 상자 밖으로 할 수 없어, 구성을 많이 작성하는 데 사용되기 전에 통합은 높지 않을 것입니다.

웹팩 입구 기반. 웹팩 자동으로 파일 엔트리를 읽어들이는 데 필요한 재귀 적으로 모든 자원을 분석, 파일은 다음 웹팩이 기능을 확장하는 플러그인으로, 다양한 다른 로더로 처리됩니다.

그래서 요약합니다 :

아이디어에서 그것을 꿀꺽 구축하고 툴툴 거리는 소리는 여러 프런트 엔드로 분할 건설의 전 과정을 개발해야합니다 Task, 그리고 모두의 합리적인 통제 Task무엇 무엇 로더 작업을 수행하는 데 사용되어야 호출 관계 웹팩 입구, 다른 자원에 대한 명확한 필요성을 찾기 위해 개발자를 필요로 파싱 처리

웹팩 당신이 사용되는 일반적인 로더와 플러그인을, 무엇

  • 파일 로더 : 폴더에 출력 파일 코드의 상대적 URL을 참조하여 파일 출력

  • 소스지도 로더 : 추가 서류의 원본지도 로딩은 중단 점 디버깅을 용이하게

  • 이미지 로더 :로드 및 압축 된 이미지 파일

  • 바벨 로더 : ES6는 ES5로 변환

  • CSS 로더 :로드 CSS, 지원 모듈, 압축, 파일 가져 오기 및 기타 특성

  • eslint 로더 : ESLint을 확인하여 자바 스크립트 코드

  • 정의 - 플러그인 : 환경 변수를 정의

  • 공유지 - 청크 플러그인 : 공통 코드를 추출

  • uglifyjs-웹팩 - 플러그인 : UglifyES에 의해 ES6 압축 코드

포장 공정

1. 초기화 시작 건설, 읽기와 조합 매개 변수, 로딩 플러그인, 인스턴스화 컴파일러

2. 컴파일 : 문제에서 항목, 각 해당 시리얼 모듈 로더에 대한 호출은 파일의 내용을 번역 한 다음 모듈을 의존하는 모듈, 재귀 적으로 컴파일 과정을 찾습니다.

3, 출력 : 청크로 컴파일 조합에 대한 모듈, 청크는 파일 시스템에 파일 출력을 변환합니다.

segmentfault.com/a/119000001...

HTTPS : //juejin.im/post/5cfa17a46fb9a07ef1617429 재현

추천

출처blog.csdn.net/weixin_34329187/article/details/91454750