【问题标题】:Transpiling nodejs app with gulp-babel ignore doesn't work使用 gulp-babel ignore 编译 nodejs 应用程序不起作用
【发布时间】:2015-09-05 13:10:17
【问题描述】:

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

【问题讨论】:

  • 您可以在src 参数中排除这些文件,就像['./**/*.js', '!./node_modules{,/**}', './gulpfile.js'] 一样。在这种情况下,babel AND dest 任务不会处理这些。
  • @raina77ow 我需要禁止我的节点模块(供应商文件夹)通过 Babel,但我仍然需要通过 Gulp 将这些供应商文件连接到我的 app.js 文件。在我的.babelrc 文件夹中,我添加了"ignore": ["node_modules", "vendor/*"],但没有运气。有什么建议吗?

标签: javascript node.js gulp babeljs


【解决方案1】:

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

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

【讨论】:

  • JMM 有没有办法避免 gulp.src 每次都创建新文件?我想每次都覆盖 dist 文件夹
  • @mazzy 我不确定您所说的“创建新文件”是什么意思——它不是每次都会覆盖dist 中的每个文件吗?
  • 不幸的是,每次 nodemon 重新启动服务器时,都会在旧的 dist 文件夹中创建一个新的 dist 文件夹,从而创建嵌套文件夹
  • @mazzy 哦,好吧,我认为您每次都在将dist 与您的gulp.src glob 拉在一起。因此,您可能希望将文件放在dist 旁边的src 目录中。
  • @mazzy 我正在打电话,所以我现在不能举一个很好的例子,但我的意思是有/somedir/dist/somedir/srcgulp.src('./src/**/*.js')。或者您也可以解决其他问题,例如从您的 glob 中排除 dist
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-19
  • 2017-03-25
  • 2015-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多