2014年05月12日

御蔵入gulpタスク

作ったgulpタスクが使えなかったのでメモがてら残しておく。

やりたかったのはsassファイルなどが追加された際に、style.scssに@importでそのファイルを追加し更新して、その更新をトリガーにSassを再構築するというもの。仕組み自体はできたんだけども日本語のファイル名のファイルをインポートしようとするとSassがコンパイル時にエラーを吐くというので詰んだ。style2 のコピー.scssなんかのファイルがディレクトリ内に入るとSassのコンパイルエラーが出てgulpが落ちてしまうので使えない。

Sassのコンパイルエラーが出てもgulpが落ちないようにしたら使えそうな気もするけどひとまず御蔵入。

//Create main Sass File
gulp.task('createMainSassFile', function () {
var mainSassFile = config.path.sass+'/style.scss';
var newFile = '@charset "UTF-8";\n';
var length = 0;
var fileCheck = function(dir, cb){
fs.readdir(dir+"/.", function(err, files){
if (err) throw err;
if(length!=0)--length;
length += files.length;
files.forEach(function (file) {
var file = dir+"/"+file;
if(fs.statSync(file).isDirectory()){
fileCheck(file, cb);
}else if(!file.match(/.scss$/) || file==mainSassFile){
if(--length===0)cb();
}else{
newFile += '@import "'+file.replace(config.path.sass+"/","")+'";\n';
if(--length===0)cb();
}

});
});
}
fileCheck(config.path.sass,function(){
var fd = fs.openSync(mainSassFile, "w");
fs.writeSync(fd, newFile, 0, "UTF-8");
fs.closeSync(fd);
});

});
タグ:node.js GULP
posted by ねこまんま at 23:28 | Comment(1) | TrackBack(0) | node.js | 更新情報をチェックする
この記事へのコメント
エラーが出ても落ちないようにgulp-plumberはどうでしょう

https://github.com/floatdrop/gulp-plumber
Posted by at 2014年05月13日 14:12
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/396894341
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック