2016-07-14 29 views
5

Ich habe versucht, herauszufinden, wie Sie eine Textzeile zu jeder Art von Datei mit Gulp hinzufügen.Wie kann ich Gulp verwenden, um eine Zeile Text zu einer Datei hinzuzufügen

Zum Beispiel hinzufügen:

@import 'plugins' 

meiner main.sass Datei.

Oder fügen Sie eine CDN zu einer index.html-Datei hinzu.

Ich versuche, tat

gulp.task('inject-plugins', function(){ 
    gulp.src('src/css/main.sass') 
    .pipe(inject.after('// Add Imports', '\[email protected] \'plugins\'\n')); 
}); 

ohne Freude. Irgendeine Idee, wie ich das bitte erreichen könnte?

Antwort

7

Hängt davon ab, was Sie tun möchten.

Wenn Sie nur Text an den Anfang oder das Ende einer Datei hinzufügen möchten gulp-header und gulp-footer sind deine Freunde:

var header = require('gulp-header'); 
var footer = require('gulp-footer'); 

gulp.task('add-text-to-beginning', function() { 
    return gulp.src('src/css/main.sass') 
    .pipe(header('@import \'plugins\'\n')) 
    .pipe(gulp.dest('dist')); 
}); 

gulp.task('add-text-to-end', function() { 
    return gulp.src('src/css/main.sass') 
    .pipe(footer('@import \'plugins\'')) 
    .pipe(gulp.dest('dist')); 
}); 

Wenn Sie irgendeine Art von „Anker“ Text in der Datei haben, können Sie gulp-replace verwenden :

var replace = require('gulp-replace'); 

gulp.task('replace-text', function() { 
    var anchor = '// Add Imports'; 
    return gulp.src('src/css/main.sass') 
    .pipe(replace(anchor, anchor + '\[email protected] \'plugins\'\n')) 
    .pipe(gulp.dest('dist')); 
}); 

Schließlich gibt es noch das Schweizer Taschenmesser von Vinyl-Datei Manipulation: map-stream. Dies gibt Ihnen direkten Zugriff auf Dateiinhalte und ermöglicht Ihnen jede Art von String-Manipulation, die Sie in JavaScript denken können:

+0

Vergessen Sie nicht, diese Bibliotheken hinzuzufügen! Wenn Sie npm verwenden: Fügen Sie sie zu "devDependencies": {..} in der Datei package.json hinzu und führen Sie "npm install" aus. –