Nuxt 3 Release Candidate がリリースされました! v3.nuxtjs.org で詳細について見れます。

翻訳されたページ このページのコンテンツは古い可能性があります。

ModuleContainer クラス


すべてのモジュール 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: オブジェクトプロパティ (srcoptionsfileNamemode)。

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])です。requireOncetrue で解決されたモジュールが meta をエクスポートしている場合に、同じモジュールが二度登録されるのを回避します。

requireModule (moduleOpts)

非同期関数

addModule(moduleOpts, true) の短縮形です。

フック

特定のライフサイクルイベントでフックを登録できます。

フック 引数 タイミング
modules:before (moduleContainer, options) ModuleContainer クラスが作られる前に呼ばれ、メソッドとオプションのオーバーロードに役立ちます。
modules:done (moduleContainer) すべてのモジュールがロードされたときに呼ばれます。