ModuleContainer クラス

すべてのモジュールModuleContainer インスタンスのコンテキストの中で呼ばれます。

Tapable プラグイン

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

nuxt.moduleContainer.plugin('ready', async moduleContainer => {
  // すべてのモジュールの準備ができたらこの処理を実行します
})

モジュールコンテキストの中では代わりに以下のようにできます:

this.plugin('ready', async moduleContainer => {
  // すべてのモジュールの準備ができたらこの処理を実行します
})
プラグイン引数タイミング
readymoduleContainernuxt.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)すべてのモジュールがロードされたときに呼ばれます。

間違いを見つけた、またはドキュメントに貢献したいですか? GitHub でこのページを編集する