Как я могу использовать Gulp для добавления строки текста в файл

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

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

@import 'plugins'

для меня главным.файл sass.

или добавьте CDN в индекс.HTML-файл.

Я сделал попытку:

gulp.task('inject-plugins', function(){
   gulp.src('src/css/main.sass')
    .pipe(inject.after('// Add Imports', 'n@import 'plugins'n'));
});

без радости. Есть идеи, как мне этого добиться?

1 ответов


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

если вы просто хотите, чтобы добавить текст в начало или конец файла 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 + '\n@import \'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'));
});