You are browsing Nuxt 2 docs. Go to Nuxt 3 docs, or learn more about Nuxt 2 Long Term Support.

Translated page Contents of this page might be outdated.

A classe ModuleContainer


Todos os módulos serão chamados dentro do contexto da instância de ModuleContainer.

Plugins intercetáveis

Nós podemos registar gatilhos em certos eventos do ciclo de vida.

nuxt.moduleContainer.plugin('ready', async moduleContainer => {
  // Faça isso depois de todos módulos estiverem prontos
})

Dentro do contexto de módulos nós podemos usar isso:

this.plugin('ready', async moduleContainer => {
  // Faça isso depois de todos módulos estiverem prontos
})
Plugin Argumentos Quando
ready moduleContainer Todos módulos dentro do ficheiro nuxt.config.js terem sido inicializados

Métodos

O método addVendor (vendor)

Depreciado visto que vendor não é mais usado

Adiciona ao options.build.vendor e aplica filtro único.

addTemplate (template)

  • template: String ou Object
    • src
    • options
    • fileName

Renderiza o modelo dado usando o modelo do lodash durante a construção dentro do projeto buildDir (.nuxt).

Se o fileName não for fornecido ou o template não for uma sequência de caracteres, o nome do ficheiro alvo é padronizado para [dirName].[fileName].[pathHash].[ext].

Este método retorna o objeto final { dst, src, options }.

O método addPlugin (template)

  • template: propriedades de Objeto (src, options, fileName, mode).

Regista um plugin usando o método addTemplate e adiciona ele no início do arranjo plugins[].

this.addPlugin({
  src: path.resolve(__dirname, 'templates/foo.js'),
  fileName: 'foo.server.js' // [opcional] apenas inclui o pacote do servidor
  options: moduleOptions
})

Repare que: Você pode usar o mode ou os modificadores .client e .server com a opção fileName para usar o plugin apenas no lado do cliente ou servidor. (Consulte a secção plugins para conhecer todas opções disponíveis)

Se você escolher especificar um fileName, você pode também configurar um caminho personalizado para fileName, assim você pode escolher a estrutura da pasta dentro da pasta .nuxt no sentido de prevenir a colisão de nome:

{
  fileName: path.join('folder', 'foo.client.js'), // resultará em `.nuxt/folder/foo.client.js`
}

O método addServerMiddleware (middleware)

Empurra o intermediário dentro options.serverMiddleware .

O método extendBuild (fn)

Permite estender facilmente a configuração da construção do webpack pela encadeamento da função options.build.extend .

O método extendRoutes (fn)

Permite estender facilmente as rotas pelo encadeamento da função options.build.extendRoutes .

O método addModule (moduleOpts, requireOnce)

Função assíncrona

Regista um módulo. O moduleOpts pode ser uma sequência de caracteres ou um arranjo ([src, options]). Se o requireOnce for true e o módulo resolvido exportar o meta, ele evita o registo do mesmo módulo duas vezes.

O método requireModule (moduleOpts)

Função assíncrona

É um atalho para addModule(moduleOpts, true)

Os gatilhos

Nós podemos registar gatilhos em certos eventos do ciclo de vida.

Gatilho Argumentos Quando
modules:before (moduleContainer, options) Chamado antes da criação da classe ModuleContainer, útil para sobrecarregar métodos e opções.
modules:done (moduleContainer) Chamado quando todos módulos tiverem sido carregados.