ModuleContainer クラス
- ソース: core/module.js
すべてのモジュール は ModuleContainer インスタンスのコンテキストの中で呼ばれます。
Tapable プラグイン
特定のライフサイクルイベントでフックを登録できます。
nuxt.moduleContainer.plugin('ready', async moduleContainer => {
// すべてのモジュールの準備ができたらこの処理を実行します
})
モジュール コンテキストの中では代わりに以下のようにできます:
this.plugin('ready', async moduleContainer => {
// すべてのモジュールの準備ができたらこの処理を実行します
})
| プラグイン | 引数 | タイミング |
|---|---|---|
ready |
moduleContainer | nuxt.config.js にあるすべてのモジュールが初期化されたとき |
メソッド
addVendor (vendor)
vendor は使われていないので非推奨です
options.build.vendor に追加し、一意なフィルタを適用します。
addTemplate (template)
-
template:
StringまたはObject-
src -
options -
fileName
-
プロジェクトの buildDir(.nuxt)へビルド中に、lodash template を使って与えられたテンプレートをレンダリングします。
fileName を与えないか template が文字列の場合、ターゲットのファイル名はデフォルトで [dirName].[fileName].[pathHash].[ext] になります。
このメソッドは最終的な { dst, src, options } オブジェクトを返します。
addPlugin (template)
-
template: オブジェクトプロパティ (
src、options、fileName、mode)。
addTemplate を使ってプラグインを登録し、plugins[] 配列の先頭に追加します。
this.addPlugin({
src: path.resolve(__dirname, 'templates/foo.js'),
fileName: 'foo.server.js' // [optional] はサーバーバンドルにのみ含まれます
options: moduleOptions
})
注意: プラグインをクライアントサイドまたはサーバーサイドでのみ使う場合は mode または .client と .server 修飾子を fileName オプションと共に使えます(利用可能なオプションについては plugins を参照してください)。
fileName を指定する場合、fileName にカスタムパスを設定できます。名前の衝突を防ぐため .nuxt フォルダ内のフォルダ構成を選択できます:
{
fileName: path.join('folder', 'foo.client.js'), // 結果は `.nuxt/folder/foo.client.js` になります
}
addServerMiddleware (middleware)
options.serverMiddleware にミドルウェアをプッシュします。
extendBuild (fn)
options.build.extend 関数をつなげることで webpack のビルド設定を簡単に拡張できます。
extendRoutes (fn)
options.build.extendRoutes 関数をつなげることでルートを簡単に拡張できます。
addModule (moduleOpts, requireOnce)
非同期関数
モジュールを登録します。moduleOpts は文字列または配列([src, options])です。requireOnce が true で解決されたモジュールが meta をエクスポートしている場合に、同じモジュールが二度登録されるのを回避します。
requireModule (moduleOpts)
非同期関数
addModule(moduleOpts, true) の短縮形です。
フック
特定のライフサイクルイベントでフックを登録できます。
| フック | 引数 | タイミング |
|---|---|---|
modules:before |
(moduleContainer, options) | ModuleContainer クラスが作られる前に呼ばれ、メソッドとオプションのオーバーロードに役立ちます。 |
modules:done |
(moduleContainer) | すべてのモジュールがロードされたときに呼ばれます。 |