これらの関数はコード分割と関係があります。これにより、コードの一部のセクションをメイン コードとは別にバンドルし、後でコードの実行中にロードして実行することができます。
コード例 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 でなくても、強制的にモジュールを含めることができます。