2015-09-14 8 views
7

.jsx ve .js komut dosyalarını bir paket olarak izlemek ve bir dönüştürme olarak babelify kullanarak bir paket halinde derledim. Nedense benim yudum komut dönüşümü üzerine boğulma gibi görünüyor ve emin değilim neden:Browserify, babelify dönüşümü ile grup oluşturmada başarısız oluyor (TypeError: Path, bir dize olmalıdır.)

konsolunda
gulp.task('browserify', function() { 
    var bundle = watchify(browserify('./app/jsx/client/index.jsx', { 
    extensions: ['.js', '.jsx'], 
    debug: process.env.NODE_ENV === 'development' 
    })); 
    bundle.transform(babelify); 
    bundle.on('update', function() { 
    rebundle(bundle); 
    }); 


    function rebundle(bundle) { 
    return bundle.bundle() 
    .on('error', function(error) { 
     console.log(error.stack, error.message); 
     this.emit('end'); 
    }) 
    .pipe(
     gulpif(
      (process.env.NODE_ENV == 'production'), 
      require('gulp-rename')('bundle.min.js'), 
      require('gulp-rename')('bundle.js') 
     ) 
    ) 
    .pipe(gulpif((process.env.NODE_ENV == 'production'), buffer())) 
    .pipe(gulpif((process.env.NODE_ENV == 'production'), uglify())) 
    .pipe(gulp.dest('dist/js')); 
    } 

    return rebundle(bundle); 
}); 

...

path.js:8 
    throw new TypeError('Path must be a string. Received ' + 
    ^

TypeError: Path must be a string. Received undefined 
    at assertPath (path.js:8:11) 
    at Object.posix.join (path.js:480:5) 
    at Transform.stream._transform (/home/zipp/search-admin/node_modules/gulp-rename/index.js:52:22) 
    at Transform._read (_stream_transform.js:167:10) 
    at Transform._write (_stream_transform.js:155:12) 
    at doWrite (_stream_writable.js:292:12) 
    at writeOrBuffer (_stream_writable.js:278:5) 
    at Transform.Writable.write (_stream_writable.js:207:11) 
    at Readable.ondata (/home/zipp/search-admin/node_modules/browserify/node_modules/read-only-stream/node_modules/readable-stream/lib/_stream_readable.js:572:20) 
    at emitOne (events.js:77:13) 
    at Readable.emit (events.js:169:7) 

cevap

14

bir vinyl-source-stream ihtiyaç Çünkü hatadır Orada. .bundle()'un sonucu, dosya verilerinin standart Düğüm akışıdır. Bu verileri, bir Gulp File nesnesi akışı bekleyen rename'a geçiriyorsunuz. Yerine rename kullanmanın

var source = require('vinyl-source-stream'); 

// stuff 

    function rebundle(bundle) { 
    return bundle.bundle() 
    .on('error', function(error) { 
     console.log(error.stack, error.message); 
     this.emit('end'); 
    }) 
    .pipe(
     gulpif(
      (process.env.NODE_ENV == 'production'), 

      // Use 'source' here instead, which converts binary 
      // streams to file streams. 
      source('bundle.min.js'), 
      source('bundle.js') 
     ) 
    ) 
    .pipe(gulpif((process.env.NODE_ENV == 'production'), buffer())) 
    .pipe(gulpif((process.env.NODE_ENV == 'production'), uglify())) 
    .pipe(gulp.dest('dist/js')); 
    } 

, dosyanın ilk adını tanımlamak için source kullanabilirsiniz.

+0

Teşekkürler. Anladım ama puanları alabilirsin :) – sent1nel

İlgili konular