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. |
Clément Ollivier
Daniel Roe
Alex Hirzel
Ajeet Chaulagain
René Eschke
Sébastien Chopin
Nico Devs
Muhammad
Nazaré da Piedade
Naoki Hamada
Tom
Yann Aufray
Anthony Chu
Nuzhat Minhaz
Lucas Portet
Richard Schloss
Xanzhu
bpy
Antony Konstantinidis
Hibariya
Jose Seabra
Eze
Florian LEFEBVRE
Lucas
Julien SEIXAS
Hugo
Sylvain Marroufin
Spencer Cooley
Piotr Zatorski
Vladimir Semenov
Harry Allen
kazuya kawaguchi
Unai Mengual
Hyunseung Lee
Alexandre Chopin
pooya parsa
Nick Medrano
Mosaab Emam
Iljs Путлер Капут
Heitor Ramon Ribeiro
Nero
Yoon Han
Ikko Ashimine
FamCodings
Ayouli
F. Hinkelmann
felipesuri
Christophe Carvalho Vilas-Boas
Leoš Literák
Trizotti
Marcello Bachechi
Rodolphe
Thomas Underwood
Shek Evgeniy
Lukasz Formela
Hugo Torzuoli