Conteneur de module
Conteneur de module Nuxt
- Source: core/module.js
Tous les modules seront appelés dans le contexte de l'instance ModuleContainer.
Plugins à usage unique
Nous pouvons enregistrer des hooks sur certains événements du cycle de vie.
nuxt.moduleContainer.plugin('ready', async moduleContainer => {
// Faites-le après que tous les modules soient prêts
})
Dans le contexte des modules , nous pouvons utiliser cette méthode à la place :
this.plugin('ready', async moduleContainer => {
// Faites-le après que tous les modules soient prêts
})
| Plugin | Arguments | Quand |
|---|---|---|
ready |
moduleContainer | Tous les modules dans nuxt.config.js ont été initialisés |
Méthodes
addVendor (vendor)
Déprécié car le terme vendor n'est plus utilisé
Ajoute à options.build.vendor et applique un filtre unique.
addTemplate (template)
-
template:
StringorObject-
src -
options -
fileName
-
Affiche le modèle en utilisant lodash template pendant l'intégration au projet buildDir (.nuxt).
Si fileName n'est pas fourni ou si template est une chaîne de caractères, le nom du fichier cible est par défaut [dirName].[fileName].[pathHash].[ext].
Cette méthode renvoie l'objet final { dst, src, options }.
addPlugin (template)
-
template: Object à propriétés (
src,options,fileName,mode).
Enregistre un plugin en utilisant addTemplate et l'ajoute à la première ligne des options plugins[].
Vous pouvez utiliser template.ssr : false pour désactiver le plugin y compris dans le bundle SSR.
this.addPlugin({
src: path.resolve(__dirname, 'templates/foo.js'),
fileName: 'foo.server.js' // [optionnel] inclus seulement dans un serveur bundle
options: moduleOptions
})
Note: Vous pouvez utiliser mode ou .client et .server modificateur avec fileName
option pour utiliser le plugin uniquement côté client ou côté serveur. (Voir plugins pour toutes les options valides)
Si vous choisissez de spécifier un fileName, vous pouvez également configurer un chemin personnalisé pour le fileName, afin que vous puissiez choisir la structure des dossiers dans le dossier .nuxt afin d'éviter les conflits de noms :
{
fileName: path.join('folder', 'foo.client.js'), // will result in `.nuxt/folder/foo.client.js`
}
addServerMiddleware (middleware)
Pousse le middleware dans options.serverMiddleware .
extendBuild (fn)
Permet d'étendre facilement la configuration du webpack par chaînage dans la fonction options.build.extend .
extendRoutes (fn)
Permet d'étendre facilement les routes dans la fonction options.build.extendRoutes .
addModule (moduleOpts, requireOnce)
Async function
Enregistre un module. Les moduleOpts peuvent être une chaîne de caractères ou un tableau ([src, options]). Si requireOnce est true et que le module est résolu dans les meta, cela empêchera d'enregistrer deux fois le même module.
requireModule (moduleOpts)
Async function
Est un raccourci pour addModule(moduleOpts, true)
Hooks
Nous pouvons enregistrer des hooks sur certains événements du cycle de vie.
| Hook | Arguments | Quand |
|---|---|---|
modules:before |
(moduleContainer, options) | Appelé avant la création de la classe ModuleContainer, utile pour surcharger les méthodes et les options. |
modules:done |
(moduleContainer) | Appelé lorsque tous les modules ont été chargés. |
Leoš Literák
Trizotti
Clément Ollivier
Sébastien Chopin
Marcello Bachechi
Rodolphe
Thomas Underwood
Shek Evgeniy
felipesuri
Lukasz Formela
Hugo Torzuoli
Sylvain Marroufin
Kareem Dabbeet
tramplay
Daniel Roe
verebelyicsaba
Adam
Nate Butler
Sandra Rodgers
Arpit Patidar
Matthew Kuehn
Steven DUBOIS
Travis Lindsey
syagawa
Maxime
かる
Al Power
Florent Delerue
quanghm
José Manuel Casani Guerra
Unai Mengual
kazuya kawaguchi
Michael Lynch
Tomachi
pooya parsa
Meir Roth
Brett
Adam Miedema
Thomas Bnt
Kazuki Furukawa
Anthony Ruelle
Christophe Carvalho Vilas-Boas
Roman Harmyder