2016-07-14 8 views
5

Gulpを使用して任意の種類のファイルにテキスト行を追加する方法を解明しようとしています。例えばGulpを使用してファイルにテキスト行を追加するには

追加:

@import 'plugins' 

私main.sassファイルに。

また、index.htmlファイルにCDNを追加してください。

私がしようとしなかった:

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

なし喜びで。どのように私はこれを達成することができた任意のアイデアですか?

答えて

7

あなたが何をしたいかによって異なります。あなただけのファイルの先頭や末尾にテキストを追加したい場合は

gulp-headergulp-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を使用することができます:map-stream

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

は最後にビニールファイル操作のスイスアーミーナイフがあります。これにより、ファイルの内容に直接アクセスできるようになり、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を使用している場合:package.jsonファイル内の「devDependencies」:{..}にそれらを追加し、「npm install」を実行します。 –

関連する問題