Grunt de la compilation de fichiers de Jade
Je suis en train de configurer mon Gruntfile pour compiler tous mes Jade fichiers individuels des fichiers HTML. Par exemple, si j'ai de la source suivante dossier:
source
└── templates
├── first.jade
├── second.jade
└── third.jade
Alors je m'attends à grunt jade
de sortie:
build
└── templates
├── first.html
├── second.html
└── third.html
Voici mon Gruntfile à l'aide de grunt-contrib-jade
:
module.exports = function(grunt) {
grunt.initConfig({
jade: {
compile: {
options: {
client: false,
pretty: true
},
files: [ {
src: "*.jade",
dest: "build/templates/",
ext: "html",
cwd: "source/templates/"
} ]
}
},
});
grunt.loadNpmTasks("grunt-contrib-jade");
};
Cependant, lorsque je lance le jade de commande j'obtiens les erreurs suivantes:
Running "jade:compile" (jade) task
>> Source file "first.jade" not found.
>> Source file "second.jade" not found.
>> Source file "third.jade" not found.
Ce que je fais mal?
- Essayez
files: {"source/templates/out.html: ['source/templates/*.jade']}
- Je veux compiler plusieurs fichiers, pas un seul fichier.
- Oh, je vois... En regardant un les docs semble que l'extension est ajoutée comme ce
ext: '.html'
, avec la dot. Ne peut pas voir quel est le problème... Avez-vous essayé sanscwd
juste pour tester avec le chemin complet? - Ok, je crois que cela aide. Maintenant, j'obtiens le message d'erreur:
Warning: Unable to write "build/templates/" file (Error code: EISDIR). Use --force to continue.
- Je dirait que c'est le traitement de dest en un seul fichier.
- Jamais l'esprit, j'ai pensé à elle. Merci pour l'aide!
Vous devez vous connecter pour publier un commentaire.
Pour compléter la réponse ci-dessus
Donc, si votre source est structuré de la manière suivante:
grunt jade
va créer la structure suivanteEDIT:
Le
grunt-contrib-jade
est obsolète. Vous devriez plutôt utilisergrunt-contrib-pug
. C'est exactement le même, mais ils avaient pour renommer le jade carlin!files:
l'article est un peu confus. Ne Grunt développez, ou sont-ils des options pour le grognement de jade plugin? Je demande parce que je voudrais être en mesure d'utiliser une mise en page.jade fichier dans un/views/
répertoire comme un include, mais je ne veux pas compiler lelayout.jade
fichier. Est-il un habile moyen de-I
inclure un fichier unique dans lefiles
champ. Et je tiens à le maintenir dans /vues/ car il est utilisé par l'Express moteur de rendu. Thx.Juste au cas où quelqu'un en a besoin. Rien au-dessus de travaillé. C'est de cette façon qu'il a finalement fonctionné pour moi.
Je suis en utilisant
grunt.loadNpmTasks('grunt-contrib-pug');
je ne sais pas si contrib-jade comme depuis obsolète mais cette solution fonctionne pour moi. J'ai besoin de le premier fichier objet pour gérer simplement l'index.jade et le 2ème à traiter avec les modèles. Maintenant, si je n'ai pas les diviser et il suffit de pointer vers le répertoire du projet jade compilateur se perd à l'intérieur de mon package npm dossier si cela va beaucoup plus vite.Je sais que c'est un vieux post, mais j'ai gardé de revenir ici, alors qu'il tente de résoudre un problème semblable. Je voulais à la sortie de plusieurs fichiers html à partir d'un seul modèle jade fichier à l'aide d'une boucle for. Donc besoin d'un plus grand contrôle de la "fichiers" de l'objet.
Les deux problèmes je suis tombé sur et finalement résolu, a été paramètre le nom du fichier de sortie (un objet javascript littérale de la CLÉ) et bien le javascript en ligne fonctions sont exécutées immédiatement, de sorte que la boucle de variables sont disponibles.
Voici mon code source complet avec les commentaires. J'espère que cela est utile à quelqu'un d'autre de tomber sur ce post.
Gruntfile.js:
src/index.jade:
test.json:
Après l'exécution de "grognement", la sortie doit être: