2015-02-23 34 views
0

我的文件夾結構:如何使用Gulp在子目錄中編譯JS?

dashboard > 
    components > 
     accounts > accounts.js, accountsDirectives.js 
     dash > dashApp.js 
     settings > settings.js, settingsDirectives.js 
     etc... 

我在Gulpfile

function compile_js(minify, folder) { 
    var jsLibs = gulp.src('client/'+folder+'/_sources/js/libs/*.js'); 
    var jsPlugins = gulp.src('client/'+folder+'/_sources/js/plugins/*.js'); 
    var jsCustom = gulp.src('client/'+folder+'/_sources/js/custom/*.js'); 
    var jsComponents = gulp.src('client/'+folder+'/components/*.js'); 

    // Order the streams and compile 
    return streamqueue({ objectMode: true }, 
     jsLibs, 
     jsPlugins, 
     jsCustom, 
     jsComponents 
    ) 
    .pipe(concat(folder+'.module.js')) 
    .pipe(gulpif(minify, uglify())) 
    .pipe(gulp.dest('client/'+folder+'/assets/js')); 
}; 

問題的功能是這條線中,靶向組件目錄:

var jsComponents = gulp.src('client/'+folder+'/components/*.js'); 

我也試過/components/**/*.js但仍然不起作用。

我發現this answer here, which they talk about symlinks,但我想避免使用它。 1)它看起來像一個黑客,並且2)這需要所有當前和未來的開發人員在他們的計算機上創建確切的符號鏈接。

是否有另一種方法輕鬆地定位和編譯目錄中的所有js文件與子目錄?

回答

0

你試過先創建的路徑在gulp.src參數使用變量?林也好奇,如果因爲你是涅槃他們,爲什麼你不搶他們中的一些所有文件的東西,如:

var someVar = gulp.src('client/'+folder+'/_sources/js/**/*.js'); 

VS

var jsPlugins = gulp.src('client/'+folder+'/_sources/js/plugins/*.js'); 
var jsCustom = gulp.src('client/'+folder+'/_sources/js/custom/*.js'); 
+0

好吧,我不得不打破源,高達因爲我需要插件才能在自定義之前編譯,否則我的自定義particle.js文件會中斷。不過有趣的是,在'/ **/*。js'似乎爲我的'js'文件夾中工作,不知道爲什麼不爲我的'components'文件夾 – 2015-02-23 06:15:05

+0

你試過'VAR jsComponents = gulp.src( '客戶端/' 文件夾+ + '/ **/* JS');上面的' – DvideBy0 2015-02-23 06:16:15

+1

看你的文件夾結構看起來像這將是'無功jsComponents = gulp.src( '儀表板/組件/ **/* JS。');' – DvideBy0 2015-02-23 06:18:56

相關問題