CC 4.0 ライセンス

このセクションの内容は、以下のリンクの内容から派生したものであり、CC BY 4.0 ライセンスの対象となります。

特に明記されていない限り、以下の内容は元のコンテンツに基づいて変更および削除された結果であると想定できます。

ProvidePlugin

モジュールを自動的にロードするため、至るところで`import`または`require`する必要がなくなります。

new rspack.ProvidePlugin({
  identifier: 'module1',
  // ...
});

または

new rspack.ProvidePlugin({
  identifier: ['module1', 'property1'],
  // ...
});

デフォルトでは、モジュールの解決パスは現在のフォルダ(`./**`)と`node_modules`です。

フルパスを指定することも可能です。

const path = require('path');

new rspack.ProvidePlugin({
  identifier: path.resolve(path.join(__dirname, 'src/module1')),
  // ...
});

モジュール内で`identifier`がフリー変数として検出されるたびに、`module`が自動的にロードされ、`identifier`にはロードされた`module`のエクスポート(または名前付きエクスポートをサポートするために`property`)が設定されます。

ES2015モジュールのデフォルトエクスポートをインポートするには、モジュールのデフォルトプロパティを指定する必要があります。

オプション

  • 型: `Record<string, string | string[]>`

ブラウザでprocessを使用する

ブラウザコンテキスト内で`process`オブジェクトのサポートを有効にします。

new rspack.ProvidePlugin({
  process: [require.resolve('process/browser')],
});

以下のコード

console.log(process.version);

は、バックグラウンドで以下のように変換されます。

import process from 'process/browser';
console.log(process.version);

jQuery

`jquery`を自動的にロードするには、公開されている両方の変数を対応するノードモジュールにポイントします。

new rspack.ProvidePlugin({
  $: 'jquery',
  jQuery: 'jquery',
});

次に、ソースコードのいずれかで

// in a module
$('#item'); // <= works
jQuery('#item'); // <= also works
// $ is automatically set to the exports of module "jquery"

Lodash Map

new rspack.ProvidePlugin({
  _map: ['lodash', 'map'],
});

Vue.js

new rspack.ProvidePlugin({
  Vue: ['vue/dist/vue.esm.js', 'default'],
});