使用gulp-babel ignore编译nodejs应用程序不起作用

Transpiling nodejs app with gulp-babel ignore doesn't work

本文关键字:应用程序 不起作用 nodejs 编译 gulp-babel ignore 使用      更新时间:2023-09-26

我在gulp中创建了一个任务来翻译我的nodejs应用程序:

gulp.task('babel', function() {
    return gulp.src('./**/*.js')
        .pipe(babel({
            ignore: [
                './gulpfile.js',
                './node_modules/**/*.js',
            ]
        }))
        .pipe(gulp.dest('./dist'));
});

问题是,在编译过程中,node_modules文件夹和gulpfile文件夹被创建在dist文件夹中。知道为什么吗?

gulpfile

var gulp = require('gulp');
var babel = require('gulp-babel');
var nodemon = require('gulp-nodemon');
gulp.task('babel', function() {
    return gulp.src([
            './**/*.js',
            './server/config/manifest.' + (process.env['NODE_ENV'] || 'development') + '.json',
            '!./gulpfile.js',
            '!./node_modules/**/*.js'
        ])
        .pipe(babel())
        .pipe(gulp.dest('./dist'));
});
gulp.task('start', ['babel'], function() {
    nodemon({
        script: './dist/server.js',
        ext: 'js jsx',
        tasks: ['babel']
    });
});
gulp.task('default', ['start']);

Babel的ignore只是意味着它们不会被转换,但是配置gulp仍然会通过管道传递它们。您可能希望这些模式在ignore选项到gulp.src

编辑:实际上我忘记了通过将ignore选项传递给gulp.src来排除这些模式的能力取决于最近的glob版本是多少(参见我的错误报告)。另一种选择是!否定模式@raina77ow建议。