質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

gulp

gulpは、Node.jsをベースとしたタスク自動化ツールの一つ。ストリームでファイルを処理することが特徴です。CSSプリプロセッサの使用時のコンパイルや、CSS・JavaScriptファイルの圧縮・結合などを自動的に行うことができます。

Q&A

解決済

1回答

2429閲覧

Gulpで、gulp-htmlminにて、エラーがでる。

miyabi_takatsuk

総合スコア9528

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

gulp

gulpは、Node.jsをベースとしたタスク自動化ツールの一つ。ストリームでファイルを処理することが特徴です。CSSプリプロセッサの使用時のコンパイルや、CSS・JavaScriptファイルの圧縮・結合などを自動的に行うことができます。

0グッド

0クリップ

投稿2017/05/08 06:26

###前提・実現したいこと
表記の通り、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です。

必要情報あれば、追記いたします。
何とぞよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

すみません、自己解決しました。
対象ファイルを少なくした時に、うまく動いたので、
処理数が多すぎたため、だったと思われます。
もう少し、いい方法がないか、やってみます。

投稿2017/05/08 07:24

miyabi_takatsuk

総合スコア9528

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問