Pug
Extensions supportées : jade
, pug
La mise en place du Pug est facile. Vous pouvez avoir la structure de fichier que vous voulez, nous ne fournissons plusieurs exemples simples comme point de référence.
Exemple 1 - index.pug uniquement
Supposons cette structure de fichier :
.
├── package.json
└── src
└── index.pug
Nous pouvons obtenir l'exécution en utilisant cette commande de Parcel : parcel src/index.pug
.
Exemple 2 - index.pug, index.js et style.css
Supposons cette structure de fichier :
.
├── package.json
└── src
├── index.js
├── index.pug
└── style.css
Dans index.pug, connectez simplement votre feuille de style et votre js comme d’habitude.
// index.pug
doctype html
html(lang="")
head
// ...
link(rel="stylesheet", href="index.css")
body
h1 Hello
script(src="index.js")
Si vous utilisiez Stylus, Sass ou LESS, vous les liés toujours de la même manière. Vous pouvez importer votre fichier de style directement dans votre fichier JS si vous préférez.
Nous pouvons obtenir l'exécution en utilisant cette même commande de Parcel : parcel src/index.pug
.
Exemple 3 - Pug avec locals
Supposons cette structure de fichier :
.
├── package.json
└── src
├── index.pug
└── pug.config.js
Nous avons besoin d'exporter un objet locals
à partir d'un fichier pug.config.js
. Le fichier pug.config.js
doit se trouver dans le répertoire contenant le fichier index.pug
OU dans le répertoire contenant le fichier package.json
. Le fichier pug.config.js
n'a pas besoin d'être explicitement importé dans un fichier js. C’EST le seul moyen de rendre un objet locals
disponible pour vos templates Pug.
// pug.config.js
module.exports = {
locals: {
hello: 'world'
}
}
// index.pug
doctype html
html(lang="")
head
// ...
body
h1 #{hello}
Encore une fois, nous pouvons obtenir l'exécution en utilisant cette commande de Parcel : parcel src/index.pug
.
Annuler et réexécuter le colis après la mise à jour de l'objet locals
Vous ne pourrez pas voir les modifications apportées à la volée à l'objet locals
. Si vous mettez à jour votre objet locals
, vous devez annuler le processus Parcel dans votre terminal et relancer parcel src/index.pug
.
Attention aux erreurs silencieuses
De plus, sachez que si vous utilisez cette configuration locals
, vous ne recevrez pas d’erreur si vous utilisez une propriété qui n’existe pas pour l’interpolation dans votre Pug. Ainsi, si nous écrivons h1 #{thing}
et qu'il n'y avait aucune propriété thing
dans locals
, Parcel ne plantera pas, ni ne signalera une erreur. Il n'y aura qu'un résultat vide dans le navigateur. Veillez donc à ne pas vous tromper, sinon vous risquez de ne pas savoir qu'un élément interpolé ne fonctionne pas.
Les trois options de dénomination du fichier
Vous pouvez utiliser un fichier .pugrc
ou .pugrc.js
à la place de pug.config.js
. Mais ce sont les 3 seules variantes qui fonctionneront pour la mise en place de locals
.
Impossible d'utiliser les instructions import dans le fichier pug.config.js
Si vous souhaitez importer d'autres fichiers dans le fichier pug.config.js
, vous devez utiliser des instructions require
.
Ceci fonctionnera :
// pug.config.js
const data = require('./data.js')
module.exports = {
locals: {
d: data
}
}
Ceci NE fonctionnera PAS :
import data from './data.js'
module.exports = {
locals: {
d: data
}
}
Ajouter un script à package.json
"scripts": {
"dev": "parcel src/index.pug",
"devopen": "parcel src/index.pug --open 'google chrome'",
"build": "parcel build src/index.pug"
},
Nous pouvons utiliser npm run dev
ou npm run devopen
pour que le projet s'ouvre dans le navigateur. Nous pouvons ensuite construire le projet avec npm run build
.
Aidez-nous à améliorer la documentation
Si quelque chose manque ou n'est pas tout à fait clair, veuillez enregistrer une issue sur le dépôt du site web (en anglais) ou modifier cette page.