###前提・実現したいこと
表記の通り、Gulpにて、gulp-htmlminパッケージの実行時にエラーがでます。
実現したいことは、Gulpファイルのインストールは一つ、
複数のプロジェクトで、タスクを走らせる、といったことをしたいです。
Gulpの複数プロジェクトを走らせるのは、
下記を参考にしました。
https://www.imamura.biz/blog/27170
###発生している問題・エラーメッセージ
Gulpのタスクを実行すると、下記エラーが出、中途半端に吐き出され、
途中で処理が止まってしまいます。
D:\save_data\var\www\gulp_files>gulp build-html [14:57:25] Using gulpfile D:\save_data\var\www\gulp_files\gulpfile.js [14:57:25] Starting 'build-html'... events.js:163 throw er; // Unhandled 'error' event ^ Error: no writecb in Transform class at afterTransform (D:\save_data\var\www\gulp_files\node_modules\through2\nod e_modules\readable-stream\lib\_stream_transform.js:74:40) at TransformState.afterTransform (D:\save_data\var\www\gulp_files\node_modul es\through2\node_modules\readable-stream\lib\_stream_transform.js:58:12) at DestroyableTransform.fileInclude [as _transform] (D:\save_data\var\www\gu lp_files\node_modules\gulp-file-include\lib\index.js:57:9) at DestroyableTransform.Transform._read (D:\save_data\var\www\gulp_files\nod e_modules\through2\node_modules\readable-stream\lib\_stream_transform.js:159:10) at DestroyableTransform.Transform._write (D:\save_data\var\www\gulp_files\no de_modules\through2\node_modules\readable-stream\lib\_stream_transform.js:147:83 ) at doWrite (D:\save_data\var\www\gulp_files\node_modules\through2\node_modul es\readable-stream\lib\_stream_writable.js:338:64) at writeOrBuffer (D:\save_data\var\www\gulp_files\node_modules\through2\node _modules\readable-stream\lib\_stream_writable.js:327:5) at DestroyableTransform.Writable.write (D:\save_data\var\www\gulp_files\node _modules\through2\node_modules\readable-stream\lib\_stream_writable.js:264:11) at DestroyableTransform.ondata (D:\save_data\var\www\gulp_files\node_modules \readable-stream\lib\_stream_readable.js:572:20) at emitOne (events.js:96:13)
###該当のソースコード
使用した、gulpfile.jsと、
上記の複数プロジェクト用のJavaScriptファイルを記載します。
JavaScript
1var CONTENTS_PATH = 'プロジェクト毎共通パス/', 2 ORIGIN_PATH = '_origin'; 3 4// 各npm読み込み 5var gulp = require('gulp'), 6 cache = require('gulp-cached'), 7 rename = require('gulp-rename'), 8 extender = require('gulp-html-extend'), 9 fileInclude = require('gulp-file-include'), 10 glob = require('glob'), 11 merge = require('merge-stream'), 12 changed = require('gulp-changed'), 13 runSequence = require('run-sequence'), 14 htmlmin = require('gulp-htmlmin'), 15 tinyping = require('gulp-tinypng-compress'), 16 uglify = require('gulp-uglify'), 17 uglifyjs = require('gulp-uglifyjs'), 18 bSync = require('browser-sync'), 19 imagemin = require('gulp-imagemin'), 20 pngquant = require('imagemin-pngquant'), 21 optipng = require('imagemin-optipng'), 22 devBuild = (process.env.NODE_ENV !== 'production'); 23 24 25gulp.task('default', function() { 26}); 27 28 29var CONFIGS = []; 30glob.sync('./projects/*').forEach( function( filePath ) { 31 CONFIGS.push( require( filePath ) ); 32}); 33 34 35// HTML圧縮 36gulp.task('build-html', function () { 37 var tasks = CONFIGS.map( config => { 38 39 if( config.htmlmin ) { 40 var compSrcList = new Array(0); 41 compSrcList.push('../' + config.htmlmin.root + CONTENTS_PATH + config.htmlmin.contentsSrc + ORIGIN_PATH + '/**/*.php'); 42 if (typeof config.htmlmin.notList != 'undefined') { 43 config.htmlmin.notList.forEach(function(nVal, nIndex){ 44 compSrcList.push('!../' + config.htmlmin.root + CONTENTS_PATH + config.htmlmin.contentsSrc + ORIGIN_PATH + '/' + nVal + '/**/*.php'); 45 // console.log('!../' + config.htmlmin.root + CONTENTS_PATH + config.htmlmin.contentsSrc + ORIGIN_PATH + '/' + nVal + '/**/*.php'); 46 }); 47 } 48 49 return gulp.src(compSrcList) 50 .pipe(cache('build-html')) 51 .pipe(extender({annotations:true,verbose:false})) // default options 52 .pipe(fileInclude()) 53 .pipe(htmlmin({collapseWhitespace: true})) 54 .pipe(gulp.dest('../' + config.htmlmin.root + CONTENTS_PATH + config.htmlmin.contentsSrc)); 55 } else { 56 return gulp.src( './' ); 57 } 58 }); 59 60 console.log('HTMLを圧縮しました。'); 61 62 return merge(tasks); 63});
JavaScript
1// プロジェクトのルートのディレクトリ名を定義 2var $rootSrc = '該当プロジェクトパス/'; 3 4module.exports = { 5 htmlmin: { 6 root: $rootSrc, 7 contentsSrc: 'views_s', 8 // 下記に、圧縮したくないディレクトリ名。 9 notList: [ 10 'comment', 11 'confirm', 12 'detail', 13 'inquiry', 14 'product' 15 ] 16 } 17 18};
###試したこと
エラーが出るのは、一つのプロジェクトのみで、該当プロジェクトで除外した時は、他のプロジェクトではエラーが発生しません。
試したことは、
パスの確認、パスを変えてみた、npm・Node.JS・Gulpのアップデートです。
###補足情報(言語/FW/ツール等のバージョンなど)
使用マシンは、Windows 7です。
必要情報あれば、追記いたします。
何とぞよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。