web:javascript:grunt:toc
Table des matières
Ajout de fichiers scripts
Avant tout, le projet (et donc le fichier Gruntfile.js
, prend en compte une structure telle que :
Donc les fichiers de style sont dans public/css
et la majorité des fichiers de script JavaScript sont dans public/app
(qui est une application AngularJS).
Étapes
- Installer Grunt :
$ sudo npm install -g grunt
- Installer Watch :
$ sudo npm install grunt-contrib-watch --save-dev
- Installer Include-Source :
$ sudo npm install grunt-include-source --save-dev
- Créer le fichier
Gruntfile.js
:module.exports = function(grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), watch: { scripts: { files: ['public/app/**/*.js'], tasks: ['includeSource'], options: { spawn: false, event: ['added', 'deleted'] } } }, includeSource: { options: { basePath: 'public', baseUrl: '/', templates: { html: { js: '<script type="text/javascript" src="{filePath}"></script>', css: '<link rel="stylesheet" type="text/css" href="{filePath}" />', } } }, target: { files: { 'server/views/index.html': 'server/views/index.tpl.html' } } }, }); grunt.event.on('watch', function(action, filepath, target) { grunt.log.writeln(target + ': ' + filepath + ' has ' + action); }); // Load tasks grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-include-source'); // Default task(s). grunt.registerTask('default', [ 'watch', 'includeSource' ]); };
- Créer un fichier
index.tpl.html
qui inclut :<!-- include: "type": "css", "files": "css/**/*.css" -->
dans la section<head>
.<!-- include: "type": "js", "files": "app/**/*.js" -->
avant la balise de fermeture du corps du HTML (avant</body>
).
- Exécuter Grunt :
$ grunt
.
Si tout se passe bien, le fichier index.html
sera mis à jour à l'ajout/suppression d'un fichier JavaScript/CSS.
Sources
- Source pour la minification et le cleanup : Writing an Awesome Build Script with Grunt
web/javascript/grunt/toc.txt · Dernière modification : 2022/02/02 00:42 de 127.0.0.1