-
Notifications
You must be signed in to change notification settings - Fork 0
Grunt
Concerne la partie client uniquement (HTML/JS) :
- Mieux découper les sources
- Minifier nos javascripts
- Tester automatiquement qu'il n'y a pas d'erreurs (sans AjaxMin qui est windows only)
- Passer automatiquement des tests unitaires
C'est pourquoi je m'apprête à utiliser gruntjs pour "compiler" le jukebox. En fait c'est une sorte de makefile pour :
- concaténer les javascripts
- vérifier que y'a pas d'erreurs
- minifier
- ...
Ceci va permettre de rédécouper jukebox.js en plusieurs fichiers source :
- jukeboxC.js
- jukeboxUI.js
- action.js
- query.js
=> Donc plus clair pour les sources. Un fichier de 2000 lignes ca commence à faire beaucoup...
Du coup on aura un rendu généré automatiquement, à la manière d'un dist/ ou bin/ (dossier de compil). (pas à la volée je précise : à la demande) Comme ca au final index.html charge un minimum de js en mode release.
Après y'a d'autres outils que gruntjs, mais bon il est pas mal et correspond bien au besoin. Il est utilisé par le projet jquery par exemple.
Voici comment installer gruntjs. gruntjs nécessite nodejs. Récupérer nodejs depuis http://nodejs.org/download/ ou https://github.com/joyent/node
#--------------------------------------
# From github
# Requirements
sudo apt-get install git-core curl build-essential openssl libssl-dev
# Clone the repository
cd ~/gitprojects/
git clone https://github.com/joyent/node.git
cd node
# [Optionnal] Get a stable release
git tag # Gives you a list of released versions, ex: v0.8.12
git checkout <specific stable version>
#--------------------------------------
# From .tar.gz
# Get latest stable and unzip
wget http://nodejs.org/dist/v0.8.12/node-v0.8.12.tar.gz
tar xvfz node-v0.8.12.tar.gz
#--------------------------------------
# Compile and install Node
./configure
make # Be patient
sudo make install
# Check if node was installed correctly
node -v
# To update
git checkout master
git pull
git checkout v0.8.21
# Install/Update Node Packaged Modules
curl https://npmjs.org/install.sh | sudo sh
# Check npm works
npm -v
# export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/share/npm/bin:$PATH"
# export NODE_PATH="/usr/local/lib/node"
# Desinstall previous grunt
sudo npm uninstall -g grunt
# Install grunt
sudo npm install -g grunt-cli
sudo npm install -g grunt-init
# Check grunt is installed
grunt --help
# Depuis le dossier du projet, installer les dépendances
# Un `npm install` devrait suffir et est recommandé (il va lire le package.json)
npm install
# On peut aussi tout faire à la mano
# npm install grunt
# npm install grunt-contrib-uglify
# npm install grunt-contrib-concat
# npm install grunt-contrib-jshint
# npm install grunt-contrib-cssmin
# npm install plato
#
# Note: on peut éventuellement rajouter le flag --save à la fin de chaque commande line
# Afin que le fichier package.json soit mise à jour avec la version installée
#--------------------------------------
Il suffit d'appeler grunt depuis n'importe quel dossier du jukebox.
Debug:
Release:

