使用gulp-babel忽略显示nodejs app并不起作用

时间:2015-09-05 13:10:18

标签: javascript node.js gulp babeljs

我已经在gulp中创建了一个任务来转换我的nodejs应用程序:

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

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

问题是在转发期间,在dist文件夹中创建了node_modules文件夹和gulpfile。知道为什么吗?

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']);

1 个答案:

答案 0 :(得分:2)

Babel的ignore只是意味着他们不会被改造,但是配置gulp仍然会让他们彻底改变。您可能希望ignore选项中的这些模式为gulp.src

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