webpack require.ensure와 require AMD_javascript 기술의 차이점에 대한 자세한 설명

韦小宝
풀어 주다: 2017-12-15 10:49:08
원래의
1524명이 탐색했습니다.

이 글에서는 webpack에 대한 자세한 설명을 중심으로 require.ensure와 require AMD의 차이점을 편집자는 꽤 좋다고 생각하며 모두에게 참고 자료로 활용하겠습니다. webpack에 관심이 있다면 편집자를 따라가서 살펴보세요.

소개

require-ensure와 require-amd의 차이점:

require-amd

설명: 와 동일 AMD 사양의 require 함수를 사용할 때 모듈 배열과 콜백 함수를 전달하세요. 콜백 함수는 모듈을 다운로드하고 실행한 후에만 실행됩니다.

Syntax: require(dependents: String[], [callback: function( ...)])

Parameters

  1. dependents: 모듈 종속성 배열

  2. callback: 콜백 함수

require-ensure

설명: require.ensure는 필요할 때만 종속 모듈을 다운로드합니다. 매개변수가 지정된 경우 모듈이 다운로드된 후(다운로드된 모듈이 아직 실행되지 않음)

매개변수에 지정된 콜백 함수가 실행됩니다. require.ensure는 청크를 생성하며 청크 이름을 지정할 수 있습니다. 청크 이름이 이미 존재하는 경우 종속 모듈이 기존 청크에 병합됩니다. 마지막으로 이 청크는 webpack이 빌드될 때 별도로 생성됩니다. 파일.

구문: ​​require.ensure(종속성: 문자열[], 콜백: 함수([요구]), [chunkName: 문자열])

  1. 종속성: 종속 모듈 배열

  2. 콜백: 콜백 함수, 함수가 호출되면 필수 매개변수가 전달됩니다

  3. chunkName: 모듈 이름, 생성 중 파일을 생성할 때 이름을 지정하는 데 사용됩니다.

참고: requi.ensure 모듈은 다운로드만 되고 실행되지는 않습니다. 콜백 함수가 require(모듈 이름)을 사용할 때까지 실행되지 않습니다.

example

require-amd

소스 코드

webpack.config.amd.js


var path = require("path");
module.exports = {
  entry: "./example.amd.js",
  output: {
    path: path.join(__dirname, "amd"),
    filename: "[name].bundle.js",
    chunkFilename: "[id].chunk.js"
  }
};
로그인 후 복사


example.amd.js


require(["./module1"], function(module1) {
  console.log("aaa");
  var module2 = require("./module2");
  console.log("bbb");
});
로그인 후 복사


module1 .js


console.log("module1");
module.exports = 1;
로그인 후 복사


module2.js


console.log("module2");
module.exports = 2;
로그인 후 복사


Build results

명령줄에서 webpack 실행 --config webpack.config.amd.js
- 들. Node.js
- example.amd.js
- 1.chunk.js
- module1.js
- module2.js

실행 결과

브라우저에서 amd/index.html을 실행합니다. 콘솔 출력:


module1
aaa
module2
bbb
로그인 후 복사


require-ensure

소스 코드

webpack.config.ensure.js


var path = require("path");
module.exports = {
  entry: "./example.ensure.js",
  output: {
    path: path.join(__dirname, "ensure"),
    filename: "[name].bundle.js",
    chunkFilename: "[name].chunk.js"
  }
};
로그인 후 복사


example.ensure.js


require.ensure(["./module1"], function(require) {
  console.log("aaa");
  var module2 = require("./module2");
  console.log("bbb");
  require("./module1");
}, 'test');
로그인 후 복사


module1.js
위와 동일

module2.js
위와 동일

결과 빌드

명령줄에서 webpack을 실행합니다 --config webpack.config.ensure.js
- main.bundle.js
- example.amd. js
- 1 .chunk.js
- module1.js
- module2.js

실행 결과

브라우저에서 verify/index.html을 실행하면 콘솔 출력:

aaa
module2
bbb
module1

require -ensure-chunk

소스 코드

webpack.config.ensure.chunk.js


var path = require("path");
module.exports = {
  entry: "./example.ensur.chunk.js",
  output: {
    path: path.join(__dirname, "ensure-chunk"),
    filename: "[name].bundle.js",
    chunkFilename: "[name].chunk.js"
  }
};
로그인 후 복사


example.ensur.chunk.js


require.ensure(["./module1"], function(require) {
  console.log("aaa");
  require("./module1");
  console.log("bbb");
}, 'common');

require.ensure(["./module2"], function(require) {
  console.log("ccc");
  require("./module2");
  console.log("ddd");
}, 'common');
로그인 후 복사


모듈1. js
위와 동일

module2.js
위와 동일

빌드 결과

명령줄에서 webpack 실행 --config webpack.config.ensure.js
- main.bundle.js
- 예시. amd.js
- 1.chunk .js
- module1.js
- module2.js

실행 결과

브라우저에서 verify/index.html을 실행하면 콘솔 출력:

aaa
module1
bbb
ccc
1module2
ddd

위의 내용이 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되기를 바랍니다. 또한 모든 분들이 PHP 중국어 웹사이트를 지지해 주시길 바랍니다.

관련 추천:

vue on-demand loading 구성 요소 webpack require.ensure

webpack require.ensure와 require AMD

webpack 학습의 차이점에 대한 자세한 설명 튜토리얼 프론트엔드 성능 최적화 요약

위 내용은 webpack require.ensure와 require AMD_javascript 기술의 차이점에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!