Maison >interface Web >js tutoriel >Amélioration de votre flux de travail Ember.js à l'aide de Gulp.js
Avantages clés de l'utilisation de gulp.js avec Ember.js
Cet article montre comment Gulp.js peut améliorer considérablement votre flux de travail de développement Ember.js en automatisant les tâches répétitives. Il s'agit notamment de la compilation SCSS, de la minification et de la concaténation JavaScript et CSS, de la surveillance des fichiers, de la compilation du modèle de guidon et de l'optimisation du code JavaScript. Nous explorerons la configuration et la configuration des plugins essentiels Gulp.js pour y parvenir.
Ce guide assume la familiarité avec gulp.js. Si vous avez besoin d'un rafraîchissement, reportez-vous à l'introduction de SitePoint à gulp.js.
Défis de développement Ember.js standard
Les projets Ember.js impliquent souvent la gestion des fichiers SCSS, CSS, JavaScript et Honebars. Examinons les tâches courantes:
Plugins essentiels gulp.js
Nous utiliserons les plugins suivants:
gulp
: Le package Core Gulp.js. gulp-compass
: Pour la compilation SCSS (nécessite Ruby et le GEM de la boussole). gulp-uglify
: Pour la minification et l'optimisation JavaScript. gulp-watch
: Pour les tâches de surveillance et de déclenchement des fichiers sur les modifications. gulp-concat
: Pour concaténer les fichiers CSS et JavaScript. gulp-ember-handlebars
: Pour compiller les modèles de guidon. Installation du plugin
package.json
(si on n'existe pas). npm install gulp -g
npm install gulp gulp-compass gulp-uglify gulp-watch gulp-concat gulp-ember-handlebars --save-dev
votre package.json
devrait désormais répertorier ces plugins sous devDependencies
.
gulpfile.js Configuration
Créez un fichier gulpfile.js
et ajoutez le code suivant pour importer les plugins:
<code class="language-javascript">var gulp = require('gulp'), compass = require('gulp-compass'), watch = require('gulp-watch'), handlebars = require('gulp-ember-handlebars'), uglify = require('gulp-uglify'), concat = require('gulp-concat');</code>
Définition des tâches Gulp
Définissons les tâches des opérations communes. N'oubliez pas que les chemins de fichier sont relatifs à gulpfile.js
.
dist/css
. <code class="language-javascript">gulp.task('css', function() { return gulp.src('scss/*.scss') .pipe(compass({ sass: 'scss' })) .pipe(concat('main.min.css')) .pipe(gulp.dest('dist/css')); });</code>
js/
. <code class="language-javascript">gulp.task('templates', function() { gulp.src(['js/templates/**/*.hbs']) .pipe(handlebars({ outputType: 'browser', namespace: 'Ember.TEMPLATES' })) .pipe(concat('templates.js')) .pipe(gulp.dest('js/')); });</code>
dist/js
. <code class="language-javascript">gulp.task('scripts', function() { // ... (Your JavaScript file list here) ... return gulp.src(scriptSrc) .pipe(uglify({ mangle: false })) .pipe(concat('main.min.js')) .pipe(gulp.dest('dist/js')); });</code>
<code class="language-javascript">gulp.task('watch', function() { gulp.watch('scss/*.scss', ['css']); gulp.watch('js/templates/**/*.hbs', ['templates']); gulp.watch('js/**/*.js', ['scripts']); });</code>
en utilisant les tâches
gulp
(ou gulp default
) pour démarrer la tâche de montre et reconstruire automatiquement sur les modifications de fichiers. Vous voudrez peut-être ajuster les paramètres uglify
pour le développement afin d'éviter le traitement inutile. <code class="language-javascript">gulp.task('default', ['css', 'templates', 'scripts', 'watch']);</code>
gulp production
pour une seule version sans la tâche de montre. <code class="language-javascript">gulp.task('production', ['css', 'templates', 'scripts']);</code>
N'oubliez pas de remplacer la liste des fichiers JavaScript de l'espace réservé dans la tâche scripts
par les fichiers de votre projet réel. Consultez la documentation pour chaque plugin pour les options de personnalisation avancées. Cette configuration fournit un flux de travail robuste et efficace pour vos projets Ember.js.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!