Ich habe Probleme mit meiner Gulp-Datei, und ich kann das Problem nicht eingrenzen.gulp-jade erstellt nur eine HTML-Datei, wenn sich mehrere Jade-Dateien im Quellordner befinden
Ich habe eine meiner Gulpfile Setup wie so:
var gulp = require('gulp'),
gutil = require('gulp-util'),
jade = require('gulp-jade'),
stylus = require('gulp-stylus'),
minify = require('gulp-minify'),
coffee = require('gulp-coffee'),
autoprefixer = require('gulp-autoprefixer'),
imagemin = require('gulp-imagemin'),
cache = require('gulp-cache'),
del = require('del'),
browserSync = require('browser-sync').create();
gulp.task('default', ['clean'], function() {
gulp.start('styles', 'markup', 'views', 'scripts', 'controllers', 'images', 'watch', 'serve');
});
gulp.task('serve', function() {
browserSync.init({
server: './public'
});
gulp.watch('public/stylesheets/*.css').on('change', browserSync.reload);
gulp.watch('public/js/*.js').on('change', browserSync.reload);
gulp.watch('public/js/*/*.js').on('change', browserSync.reload);
gulp.watch('public/*.html').on('change', browserSync.reload);
gulp.watch('public/*/*.html').on('change', browserSync.reload);
});
gulp.task('watch', function() {
gulp.watch('src/js/*.coffee', ['scripts']);
gulp.watch('src/js/*/*.coffee', ['controllers']);
gulp.watch('src/*/*.jade', ['views']);
gulp.watch('src/*.jade', ['markup']);
gulp.watch('src/stylesheets/*.styl', ['styles']);
gulp.watch('src/images/*', ['images']);
});
gulp.task('markup', function() {
gulp.src('src/*.jade')
.pipe(jade())
.pipe(minify())
.pipe(gulp.dest('public'))
.pipe(browserSync.stream());
});
gulp.task('views', function() {
var YOUR_LOCALS = {};
gulp.src('src/views/*.jade')
.pipe(jade({
locals: YOUR_LOCALS
}))
.pipe(minify())
.pipe(gulp.dest('public/views'))
.pipe(browserSync.stream());
});
gulp.task('styles', function() {
gulp.src('src/stylesheets/*.styl')
.pipe(stylus())
.pipe(autoprefixer())
.pipe(minify())
.pipe(gulp.dest('public/stylesheets'))
.pipe(browserSync.stream());
});
gulp.task('scripts', function() {
gulp.src('src/js/*.coffee')
.pipe(coffee())
.pipe(minify())
.pipe(gulp.dest('public/js'))
.pipe(browserSync.stream());
});
gulp.task('controllers', function() {
gulp.src('src/js/controllers/*.coffee')
.pipe(coffee())
.pipe(minify())
.pipe(gulp.dest('public/js/controllers'))
.pipe(browserSync.stream())
});
gulp.task('images', function() {
gulp.src('src/images/*')
.pipe(cache(imagemin({
optimizationLevel: 3,
progressive: true,
interlaced: true
})))
.pipe(gulp.dest('public/images'))
.pipe(browserSync.stream());
});
gulp.task('clean', function() {
return del(['public/js', 'public/stylesheets', 'index.html'])
});
Und ein src/Ansichten Ordner, etwa so:
src
└── views
├── login.jade
├── register.jade
└── success.jade
Allerdings, wenn ich laufe ich meine Gulpfile laufen, es baut nur die erste Jade-Datei (login.jade) in HTML, etwa so:
public
└── views
└── login.html
Wie kann ich es den Rest dieser Dateien zu bauen bekommen?
Wenn ich die login.jade-Datei aus dem Quellverzeichnis entferne und gulp starte, erstellt sie die nächste Datei in der Zeile, nämlich register.jade. Auch ich habe dieses Problem nicht mit meinem Kaffee Skriptdateien ...
Yep. Sie müssen sicherstellen, dass die Funktion ** glob ** ALLE Dateien und Dateien in Verzeichnissen erfasst! Sie müssen auch sicherstellen, dass Sie ** Ihre Streams ** zurückgeben. ** zurück gulp.src(). pipe() ** – Philip
Danke. Es scheint, dass ich nach dem, was du beschrieben hast, immer noch das gleiche Problem bekam, aber anscheinend war es der Aufruf von 'minify' in der Jade-Pipeline ... Nachdem ich minify aus der Jade-Pipeline entfernt hatte, funktionierte alles. Ich erkannte, dass Jade den Code bereits selbst minimiert und als überflüssig entfernt hatte, und plötzlich funktionierte es. –