同様の問題に対するさまざまな回答がたくさんあるのを見て、たくさんの回答を試しました。gulp-streamify と vinyl-buffer を使ってみましたが、何も使わずに使ってみましたが、何をしても、gulp パイプラインに含めるたびに Uglify でエラーが発生します。
以下は、私のコードの最も関連性の高いスニペットです。
var bfyBundler = browserify({
entries:['./src/sequencer.js'],
extensions:['.jsx'],
debug: devMode,
cache: {}, packageCache: {}, fullPaths: true
});
function bundleSequencer(){
var pipeline = bfyBundler.bundle()
.on('error', function(error){
notifier.notify({
title:error.description,
message:error.message,
sound:true,
wait:true,
fileAndLocation:error.filename + ':' + error.lineNumber + ':' + error.column
});
});
if(!devMode){
pipeline = pipeline
.pipe(uglify());
}
pipeline = pipeline
.pipe(source('sequencer.js'))
.pipe(gulp.dest('./app/'));
}
ただし、このパイプラインを実行すると、次のエラーが返されます。
E:\Sequencer\node_modules\gulp-uglify\minifier.js:67
if (file.isNull()) {
^
TypeError: file.isNull is not a function
at DestroyableTransform.minify [as _transform] (E:\Sequencer\node_modules\gulp-uglify\minifier.js:67:14)
at DestroyableTransform.Transform._read (E:\Sequencer\node_modules\through2\node_modules\readable-stream\lib\_stream_transform.js:172:10)
at DestroyableTransform.Transform._write (E:\Sequencer\node_modules\through2\node_modules\readable-stream\lib\_stream_transform.js:160:12)
at doWrite (E:\Sequencer\node_modules\through2\node_modules\readable-stream\lib\_stream_writable.js:326:12)
at writeOrBuffer (E:\Sequencer\node_modules\through2\node_modules\readable-stream\lib\_stream_writable.js:312:5)
at DestroyableTransform.Writable.write (E:\Sequencer\node_modules\through2\node_modules\readable-stream\lib\_stream_writable.js:239:11)
at Readable.ondata (E:\Sequencer\node_modules\readable-stream\lib\_stream_readable.js:572:20)
at emitOne (events.js:77:13)
at Readable.emit (events.js:169:7)
at readableAddChunk (E:\Sequencer\node_modules\readable-stream\lib\_stream_readable.js:195:16)
node-debug を使用して gulp をトリガーすると、gulp は、Vinyl ファイルではなく Buffer オブジェクトを Uglify に渡しているように見えます。この問題を診断するための情報や方法を歓迎します。
ノード v4.1.2 と gulp v3.9.0 を使用しています。私が知る限り、これらは最新バージョンです。何か変わったのかな?
私はこの質問を IRC にも投稿しました。迅速な解決を願っています。