2016-07-14 101 views
5

Ho cercato di capire come aggiungere una riga di testo a qualsiasi tipo di file utilizzando Gulp.Come posso utilizzare Gulp per aggiungere una riga di testo a un file

Per esempio aggiungere:

@import 'plugins' 

al mio file main.sass.

Oppure aggiungere un CDN a un file index.html.

ho provato:

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

senza la gioia. Qualche idea su come potrei ottenere questo per favore?

risposta

7

Dipende da ciò che si desidera fare.

Se si desidera aggiungere del testo all'inizio o alla fine di un file gulp-header e gulp-footer sono i tuoi amici:

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')); 
}); 

Se avete qualche tipo di testo "anchor" nel file è possibile utilizzare gulp-replace :

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')); 
}); 

Infine c'è il coltellino svizzero di manipolazione di file in vinile: map-stream. Questo ti dà accesso diretto ai contenuti del file e ti permette di fare qualsiasi tipo di manipolazione delle stringhe che puoi immaginare in JavaScript:

var map = require('map-stream'); 

gulp.task('change-text', function() { 
    return gulp.src('src/css/main.sass') 
    .pipe(map(function(file, cb) { 
     var fileContents = file.contents.toString(); 
     // --- do any string manipulation here --- 
     fileContents = fileContents.replace(/foo/, 'bar'); 
     fileContents = 'First line\n' + fileContents; 
     // --------------------------------------- 
     file.contents = new Buffer(fileContents); 
     cb(null, file); 
    })) 
    .pipe(gulp.dest('dist')); 
}); 
+0

Non dimenticare di aggiungere quelle librerie! Se stai usando npm: aggiungili a "devDependencies": {..} nel file package.json ed esegui "npm install" –