webpack require.ensure と require AMD の違いの詳細な説明

小云云
リリース: 2017-12-14 09:34:57
オリジナル
1572 人が閲覧しました

この記事では、webpack require.ensure と require AMD の違いについての詳細な説明を主に紹介します。編集者が非常に優れていると考えたので、参考として共有します。編集者をフォローして見てみましょう。皆さんのお役に立てれば幸いです。

require-amd

説明: AMD 仕様の require 関数と同じで、モジュール配列とコールバック関数が渡されます。

構文: require( 依存関係: String[], [コールバック: function(...)])

パラメータ

  1. 依存関係: モジュール依存関係配列

  2. callback: コールバック関数

require- ensure

注: require.ensure は、必要な場合にのみ依存モジュールをダウンロードします。パラメーターで指定されたすべてのモジュールがダウンロードされると (ダウンロードされたモジュールはまだ実行されていません)、

パラメーターで指定されたコールバック関数が実行されます。 。 require.ensure はチャンクを作成し、チャンクの名前を指定できます。チャンク名がすでに存在する場合、依存するモジュールは、Webpack のビルド時に個別に生成されます。ファイル。

構文: require.ensure(dependency: String[], callback: function([require]), [chunkName: String])

  1. dependency: 依存モジュールの配列

  2. callback: コールバック関数、関数が呼び出されるときに、require パラメーターが渡されます

  3. chunkName: モジュール名、構築中にファイルを生成するときに名前を付けるために使用されます

注: requi.e​​nsure モジュールはダウンロードされるだけで、実行されません。このモジュールのみが実行されます。コールバック関数が 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


rrreええ

module1.js


require(["./module1"], function(module1) {
  console.log("aaa");
  var module2 = require("./module2");
  console.log("bbb");
});
ログイン後にコピー

module2.js


console.log("module1");
module.exports = 1;
ログイン後にコピー

ビルド結果

コマンドラインでwebpackを実行 --config webpack.config.amd.js
- main.bundle.js
- example.amd.js
- 1. chunk.js
- module1.js
- module2.js

実行結果

ブラウザでamd/index.htmlを実行し、コンソール出力:


console.log("module2");
module.exports = 2;
ログイン後にコピー

require-ensure

sourceコード

webpack.config.ensure.js


module1
aaa
module2
bbb
ログイン後にコピー

example.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"
  }
};
ログイン後にコピー

module1.js
上と同じ

module2.js
上と同じ

結果を構築する

コマンドラインで webpack --config webpack.config.ensure.js を実行します
- main.bundle.js
- example.amd.js
- 1.chunk.js
- module1.js
- module2.js

実行結果

ブラウザでensure/index.htmlを実行すると、コンソール出力:

aaa
module2
bbb
module1

require-ensure-chunk

ソースコード

webpack。 config.ensure .chunk.js


require.ensure(["./module1"], function(require) {
  console.log("aaa");
  var module2 = require("./module2");
  console.log("bbb");
  require("./module1");
}, 'test');
ログイン後にコピー

example.ensur.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"
  }
};
ログイン後にコピー

module1.js
上と同じ

module2.js
上と同じ

コマンドを実行行ウェブパック -- config webpack.config .ensure.js - main.bundle.js

- example.amd.js

- 1.chunk.js
- module1.js
- module2.js


ブラウザで ensure/index を実行します。 html、コンソール出力:

aaamodule1bbb

cccc

1Module2

ddd



関連する推奨事項:



Webpack、Babel、Reactに関する知識


ローダーとプラグインを理解する方法

Webpack 内

webpackでCSSをパッケージ化する方法

以上がwebpack require.ensure と require AMD の違いの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート