将字符串添加到Browserify管道而不是文件

时间:2016-09-23 13:51:15

标签: javascript browserify

可以将文件添加到Browserify包中:

browserify(path)
    .add('./say_hello.js')

如何像这样添加字符串?

var jsString = "console.log('hello');";

browserify(path)
    .anotherAddFunction(jsString)

1 个答案:

答案 0 :(得分:0)

你可以这样做。创建一个变量来保存要包含在包中的所有文件,将它们发送到流中,将它们捆绑在一起,然后创建一个流以将它们合并到。

gulp.task('bundler', function() {

//put your input files into the files variable so it can get bundled together

var files = ['./app/mainA.js','./app/mainB.js','./app/mainC.js'];

//Use the map to map the files to a stream function
    var tasks = file.map(function(entry)) {
        return browserify([ entries: [entry]])
            .bundle()
            .pipe(source(entry))
            .pipe(rename({
                extname: 'bundle.js'
        });
        .pipe(gulp.dest('./dist'));
    });
    return es.merge.apply(null, tasks);
})

至于将文件添加到预先存在的包中,您可以通过修改上面的代码来重新创建包,在将文件添加到变量后重新创建包,只需创建一个函数将文件添加到files变量中,调用gulp bundler任务来初始化/更新bundle,bundle会被命名为相同的,所以它应该仍然有效,只需将新添加的文件添加到bundle中。我没有在实时webapp中测试过这个,如果你想我可以尝试实现某种类型的东西并回复你。

修改 或者,您可以使用externalize将文件异步加载到预先存在的browserify包中。