これらの関数はコード分割と関係があります。これにより、コードの一部のセクションをメイン コードとは別にバンドルし、後でコードの実行中にロードして実行することができます。
コード例 1:
require.ensure(['./module'], function() { //filled first param
最初のパラメーターは、コールバックを実行する前に確実にロードされるモジュールの配列です。./module
バンドルのいずれかにまだロードされていない場合、このモジュールが新しい HTTP リクエストに含まれているチャンクをロードし、コールバック関数を呼び出します。
Webpack の例を使用するには:
require.ensure(["module-a", "module-b"], function(require) {
var a = require("module-a");
// ...
});
module-a
異なるファイルにmodule-b
分割できるようになり、ロードされるまでコールバック関数は実行されません。
コード例 2:
require.ensure([], function() { //empty first param
let module = require('./module');
$ocLazyLoad.load([{
name: module.default,
}]);
});
ここrequire.ensure
で分割点を定義します。配列に依存関係がないため、それ自体はモジュールをロードしません。ただし、require
コールバック内のステートメントは引き続き webpack の魔法によって動的にロード./module
され、別のファイルにバンドルされます。
require.include
ドキュメントには require.include 関数もありますが、この関数の使用例がわかりません。誰かも説明できますか?
require.include
モジュールがバンドルされていない場合でも、モジュールがバンドルされていることを確認するために使用できますrequire
。通常、モジュールがrequire
-ed でない場合、まったくバンドルされません。requir
これを使用して、バンドル自体に -ed でなくても、強制的にモジュールを含めることができます。