在 gulp 中使用 browserify 忽略模块

Ignore module with browserify in gulp

因为 gulp-browserify 模块被列入黑名单,我试图在 gulpfile.js 中重写我的旧代码而不使用 gulp-browserify。

我用 gulp-browserify

完成了这项工作
var gulp = require('gulp'),
    browserify = require('gulp-browserify');

gulp.task('browserify', function() {
    return gulp.src('./lib/tssoft.commons.js')
        .pipe(browserify({
            ignore: ['jsdom']
        }))
        .pipe(gulp.dest('./dist/'))
});

如你所见,我告诉 gulp-browserify 在 browserifying 中忽略 require('jsdom')。

卸载 gulp-browserify 后我安装 browserify 模块并重写代码

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

gulp.task('browserify', function() {
    var b = browserify();
    b.ignore('jsdom');
    b.add('./lib/tssoft.commons.js');
    return b.bundle()
        .pipe(gulp.dest('./dist/'));
});

并得到这个错误:"Arguments to path.resolve must be strings"。

几天前偶然发现了这个,给你:

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

gulp.task('browserify', function() {
    var b = browserify();
    b.ignore('jsdom');
    var path = './lib/tssoft.commons.js';
    b.add(path);
    return b.bundle()
        .pipe(source(path))
        .pipe(gulp.dest('./dist/'));
});

gulp-browerify忽略需要绝对路径。 所以你只是 :

var gulp = require('gulp'),
browserify = require('gulp-browserify');
gulp.task('browserify', function() {
    return gulp.src('./lib/tssoft.commons.js')
        .pipe(browserify({
            ignore: [require.resolve('jsdom')]
        }))
        .pipe(gulp.dest('./dist/'))
});

祝你好运