La précompilation Guidon Modèles avec Grunt
En supposant que vous avez Node.js installé. Si vous n'en avez pas, allez le faire.
1) Configuration du Nœud de dépendances:
Dans votre répertoire racine des applications ajouter un fichier nommé package.json
. Collez le texte suivant dans le fichier:
{
"devDependencies": {
"grunt-contrib-handlebars": "~0.6.0",
"grunt-contrib-watch": "~0.5.3",
"handlebars": "~1.3.0"
},
}
Ce fichier JSON dit Nœud de quels paquets il y a besoin d'installer. Cela permet d'avoir d'autres développeurs se lever et courir très vite, comme vous le verrez dans la prochaine étape.
2) L'Installation De Dépendances Node:
Dans votre terminal/invite de commande/powershell, cd
dans vos projets répertoire root et exécutez les commandes suivantes:
npm install grunt -g
npm install grunt-cli -g
Et pour installer la liste des dépendances dans votre forfait.json:
npm install
Maintenant que vous avez installé toutes les dépendances node que vous avez besoin. Dans vos projets répertoire racine, vous verrez node_modules folder
.
3) Configuration De Grunt:
Dans vos projets racine du répertoire, créez un fichier nommé Gruntfile.js
. Collez le texte suivant dans le fichier:
module.exports = function(grunt) {
var TEMPLATES_LOCATION = "./src/templates/", // don't forget the trailing /
TEMPLATES_EXTENSION = ".hbs",
TEMPLATES_OUTPUT_LOCATION = TEMPLATES_LOCATION, // don't forget the trailing /
TEMPLATES_OUTPUT_FILENAME = "compiled_templates.js"; // don't forget the .js
grunt.initConfig({
watch: {
handlebars: {
files: [TEMPLATES_LOCATION + '**/*' + TEMPLATES_EXTENSION],
tasks: ['handlebars:compile']
}
},
handlebars: {
compile: {
src: TEMPLATES_LOCATION + '**/*' + TEMPLATES_EXTENSION,
dest: TEMPLATES_OUTPUT_LOCATION + TEMPLATES_OUTPUT_FILENAME,
options: {
amd: true,
namespace: "templates"
}
}
}
});
grunt.loadNpmTasks('grunt-contrib-handlebars');
grunt.loadNpmTasks('grunt-contrib-watch');
}
4) Configurer à Votre Convenance:
Si vous ne l'utilisez pas Require.js, vous aurez envie de changement handlebars.compile.options.amd
de false
. Vous pouvez également ajuster l' namespace
option à votre goût. Si vous utilisez besoin/amd modules, l'espace de noms de propriété n'a pas d'importance (il est par défaut en "JST", si vous l'enlever).
Parce que toutes les structures du projet sont un peu différentes, vous aurez besoin de configurer le Gruntfile juste un peu. Modifier les constantes TEMPLATES_LOCATION
, TEMPLATES_EXTENSION
, TEMPLATES_OUTPUT_LOCATION
, TEMPLATES_OUTPUT_FILENAME
pour les adapter à votre projet.
Si vos modèles sont dispersés tout au long de votre application, vous aurez envie de changement TEMPLATES_LOCATION
pour les plus bas répertoire possible. Assurez-vous que vos modèles sont isolés à partir de votre node_modules, bower_components ou toute autre 3e partie répertoires, parce que vous ne voulez pas Grunt pour compiler 3ème Partie des modèles dans vos applications compilées modèles. Si l'on inclut tous de votre propre code dans un ./src
, ./js
, ./app
annuaire, vous serez d'accord.
5) la Compilation de modèles avec Grunt:
Pour exécuter grognement à l'arrière-plan, ouvrez votre terminal et d' cd
dans vos projets répertoire root et lancez la commande: grunt watch:handlebars
(juste grunt watch
également). Avec grunt cours d'exécution en arrière-plan, toutes les modifications apportées à votre modèle fichiers seront automatiquement compilé et le fichier de sortie spécifié handlebars.compile.dest
sera réécrit en tant que de besoin. La sortie devrait ressembler à quelque chose comme ceci:
Running "watch" task
Waiting...
Pour exécuter la tâche de compiler seul, ouvrez votre terminal et d' cd
dans vos projets répertoire root et lancez la commande: grunt handlebars:compile
(juste grunt:handlebars
également). La sortie devrait ressembler à quelque chose comme:
Running "handlebars:compile" <handlebars> task
File "./src/templates/compiled_templates.js" created.
Done, without errors.