为 browserify 指定自定义输出文件路径

Specify custom output file path for browserify

使用 CLI,将值设置为 -o 以指定输出文件路径(包)

node node_modules/browserify/bin/cmd src/index -o lib/bundle.js

在上面的例子中,输出文件路径是./lib/bundle.js

但是,我不想使用 CLI,我想使用 JS SDK:

    const browserify = require('browserify');

    const b = browserify();
    b.add('./src/index.js');
    b.bundle(/* Where to specify the output filepath, is it here */)
     .pipe(/* or here*/)

我的脑袋会因为这个图书馆而崩溃。坦率地说,webpack 文档更好。

感谢任何帮助

只需pipe到标准文件流

const browserify = require('browserify');
const fs = require('fs');

browserify()
    .add('./src/index.js')
    .bundle()
    .pipe(fs.createWriteStream('./lib/bundle.js'));

如果你正好在使用Gulp构建系统,你也可以这样做。

(非常感谢 Dan Tello 的 article 帮助我在自己的环境中实现了这一目标!)。

这种方法利用了另一个名为 vinyl-source-stream. By using this helper module, you're not dependent upon the deprecated gulp-browserify package - you can use the latest vanilla browserify 原样包的 Node 模块的帮助。

var gulp = require('gulp');

// add in browserify module to bundle the JS
// We can use this directly instead of 'gulp-browserify' with help 
// from 'vinyl-source-stream'
var browserify = require('browserify');

// Add in vinyl-source-stream to help link browserify and gulp streams
var source = require('vinyl-source-stream');

gulp.task('browserify', () => {

    return browserify('./js/main.js') // source to compile
        .bundle()   // compile it...
        .pipe(source('popup.js'))  // pipe to output file
        .pipe(gulp.dest('./js/'));  // put output back into ./js/
});