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) | すべてのモジュールがロードされたときに呼ばれます。 |