browserify API是否需要乙烯基对象?

时间:2014-09-08 15:55:25

标签: node.js npm gulp browserify

我试图浏览一些角度文件并将它们集成到我的gulp任务中。在尝试获取browserify的gulp插件时,我遇到了这个https://github.com/gulpjs/plugins/issues/47

  

Browserify应该用作独立模块。它返回一个流并找出你的依赖图。如果您需要乙烯基物体,请使用browserify + vinyl-source-stream

我很惭愧地说我不知道​​乙烯基物是什么,读了一会后我就碰到了这个。

  

Vinyl是一个描述文件的非常简单的元数据对象。

显然你需要乙烯基适配器来展示.src, .watch and .dest?所以,我猜测vinyl-source-stream是那种适配器吗?我想我不明白的是,为什么我在浏览器中需要乙烯基对象时才能这样做: -

var gulp = require('gulp'),
    browserify = require('browserify');

gulp.task('browserify', function(){
    browserify('./js/index.js')
    .bundle()
    .pipe(gulp.dest('./js/bundle.js'));

而是必须这样做: -

var gulp = require('gulp'),
    source = require('vinyl-source-stream'),
    browserify = require('browserify');

gulp.task('browserify', function(){
    browserify('./js/index.js')
    .bundle()
    .pipe(source('./js/index.js')) //this line in particular
    .pipe(gulp.dest('./js/bundle.js'));

道歉,如果这没有意义。如果需要更多解释,我会编辑它。

1 个答案:

答案 0 :(得分:1)

您不能只管道到字符串'./js/bundle.js'。您使用source将名称附加到bundle创建的新文件,然后将文件流传输到其目标目录:

var gulp = require('gulp'),
    source = require('vinyl-source-stream'),
    browserify = require('browserify');

gulp.task('browserify', function(){
   return browserify('./js/index.js')
    .bundle()
    .pipe(source('bundle.js')) //this line in particular
    .pipe(gulp.dest('./js'));