2017-01-09 2 views
1

모든 JS 코드의 경우 프로젝트를 빌드하기 전에 크기를 축소하고 uglify했습니다.멍청이 - 공급 업체를 폴더에 게시

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 = 
{ 
    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')));  
}); 

는하지만 일부 플러그인들이 CSS 및 글꼴 파일, TinyMCE에 같은 (tinymce.js 코드)에 대한 특정 경로를 읽고 발견 작업은 파일을 복사/특정 경로에 폴더가 나는 정의 :

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/' 
     ] 
    }, 
};