2016-07-14 4 views
5

Я пытался выяснить, как добавить строку текста в любой тип файла с помощью Gulp.Как использовать Gulp для добавления строки текста в файл

Например добавить:

@import 'plugins' 

в мой файл main.sass.

Или добавьте CDN в файл index.html.

Я попробовать:

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

не радость. Любая идея, как я мог бы достичь этого, пожалуйста?

ответ

7

В зависимости от того, что вы хотите сделать.

Если вы просто хотите, чтобы добавить текст в начало или конец файла gulp-header и gulp-footer Ваши друзья:

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

Если у вас есть какие-то «якорь» текст в файле вы можете использовать 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')); 
}); 

Наконец есть швейцарский армейский нож манипуляции виниловый файла: map-stream. Это дает вам прямой доступ к содержимому файла и позволяет выполнять любые манипуляции с строками, которые вы можете представить в 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

Не забудьте добавить эти библиотеки! Если вы используете npm: добавьте их в «devDependencies»: {..} в файле package.json и запустите «npm install», –