2015-09-05 62 views
0

我創建了一個任務,一飲而盡,以transpile我的應用程序的NodeJS:Transpiling應用的NodeJS與一飲而盡,巴貝爾忽略不工作

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

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

的問題是,在transpiling的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']); 
+1

你可以在'src'參數中排除這些文件,就像使用'['./**/*.js','!./ node_modules {,/ **}','./gulpfile.js'] '。在這種情況下,那些不會被'babel'和'dest'任務處理。 – raina77ow

+0

@ raina77ow我需要禁止我的節點模塊(vendor文件夾)通過Babel,但我仍然需要通過Gulp將這些供應商文件連接到我的'app.js'文件。在我的'.babelrc'文件夾中,我添加了''ignore':[「node_modules」,「vendor/*」]'沒有運氣。有什麼建議麼? – Growler

回答

2

巴貝爾的ignore只是意味着,他們將不會被改變,但與配置一飲而盡仍然通過去管他們。您可能希望將ignore選項中的模式設置爲gulp.src

編輯:其實我忘了,通過傳遞ignore選項gulp.src排除這些模式的能力取決於你glob版本的新舊程度(見我bug report)。另一種方法是!否定模式@ raina77ow建議。

+0

JMM有沒有辦法避免gulp.src每次創建新文件?我想每次覆蓋dist文件夾 – Mazzy

+0

@mazzy我不確定你的意思是「創建新文件」 - 每次都不覆蓋'dist'中的每個文件嗎? – JMM

+0

不幸的是,每當nodemon重新啓動服務器時,在舊的dist文件夾中創建一個新的dist文件夾,創建嵌套文件夾 – Mazzy