2017-01-09 6 views
1

すべてのJSコードについて、私はプロジェクトをプロダクションに構築する前に縮小し、醜くしました。Gulp - ベンダをフォルダに公開する

var config = 
{ 
    dest: 'www', 
    vendor: 
    [ 
     './node_modules/jquery/dist/jquery.js', 

     './node_modules/angular/angular.js', 
     './node_modules/motion-ui/dist/motion-ui.js', 
     './node_modules/angular-animate/angular-animate.js', 
     './node_modules/angular-sanitize/angular-sanitize.js', 
     './node_modules/angular-ui-router/release/angular-ui-router.js', 
     './node_modules/angular-translate/dist/angular-translate.js', 
     './node_modules/angular-translate-loader-static-files/angular-translate-loader-static-files.js', 

     './src/vendors/tinymce/tinymce.js', 
     './src/vendors/tinymce/ui-tinymce.js', 

     './src/vendors/googleMaps/js/ui-googleMaps.js', 
     './src/vendors/googleMaps/js/ui-mapUpload.js', 
     './src/vendors/LocationPicker/locationpicker-jquery.js', 

     './src/vendors/rzslider/rzslider.js', 
     './src/vendors/cropit/jquery.cropit.js', 
    ] 
}; 

gulp.task('js', function() 
{ 
    streamqueue({ objectMode: true }, 
     gulp.src(config.vendor.js),   
     gulp.src('./src/appConfig.js').pipe(ngFilesort()), 
     gulp.src('./src/features/**/*.js').pipe(ngFilesort()), 
     gulp.src('./src/modules/**/*.js').pipe(ngFilesort()), 
     gulp.src('./src/assets/js/**/*.js').pipe(ngFilesort()) 
    ) 
    .pipe(sourcemaps.init()) 
    .pipe(concat('app.js')) 
    .pipe(ngAnnotate()) 

    .pipe(uglify()) 

    .pipe(rename({ suffix: '.min' })) 
    .pipe(sourcemaps.write('.')) 
    .pipe(gulp.dest(path.join(config.dest, 'js')));  
}); 

しかし、私はいくつかのプラグインはTinyMCEは(tinymce.jsコード)のように、彼らのCSSやフォントファイルのための特定のパスを読んでいる気づい:

n = n ? e.documentBaseURI.toAbsolute(n) : tinymce.baseURL + "/skins/" + i, t.skinUiCss = tinymce.Env.documentMode <= 7 ? n + "/skin.ie7.min.css" : n + "/skin.min.css", e.contentCSS.push(n + "/content" + (e.inline ? ".inline" : "") + ".min.css") 

私は一口を実行しているような場合で取扱い特定のパスにファイル/フォルダをコピーするためのタスク私が定義された:

var config = 
{ 
    //... 

    vendorNotMinified: 
    { 
     src: [ 
      './src/vendors/tinymce/skins' 
     ], 
     dest: [ 
      '/plugins/tinymce/' 
     ] 
    } 
}; 

gulp.task('vendors', function() 
{ 
    for (var i = 0; i < config.vendorNotMinified.length; i++)  
     gulp.src(config.vendorNotMinified.src[i]) 
      .pipe(gulp.dest(config.dest + config.vendorNotMinified.dest[i])); 
}); 

をしかし、私のvendorsタスクはpluginsフォルダを作成していません。

どこに問題がありますか?どのようにこれを動的な方法で解決できますか?

注:私はすでにこれにTinyMCEの行を変更:

解決
n = "./plugins/tinymce/skins/" + i, t.skinUiCss = tinymce.Env.documentMode <= 7 ? n + "/skin.ie7.min.css" : n + "/skin.min.css", e.contentCSS.push(n + "/content" + (e.inline ? ".inline" : "") + ".min.css") 

答えて

1

!ループが実行されている状態でループforに問題があります。だから私は、これまで私のタスクコードを変更し、機能するようになりました:Sindre Sorhusはthis postに言ったように、これはタスク非同期を作るために必要とされているので、

gulp.task('vendors', function (done) 
{  
    for (var i = 0; i < config.vendorNotMinified.src.length; i++)  
     gulp.src(config.vendorNotMinified.src[i]) 
      .pipe(gulp.dest(config.dest + config.vendorNotMinified.dest[i])); 

    return gulp.src(config.vendorNotMinified.src); 
}); 

は私がreturn gulp.src()に必要。コピーのために

すべてのファイルとフォルダが正しく、私は私のconfig.vendorNotMinifiedに別のパスを追加するために必要な:

var config = 
{ 
    //... 
    vendorNotMinified: 
    { 
     src: [ 
      './src/vendors/tinymce/skins', 
      './src/vendors/tinymce/skins/**' 
     ], 
     dest: [ 
      '/plugins/tinymce/', 
      '/plugins/tinymce/skins/' 
     ] 
    }, 
}; 
関連する問題