gulp.task('views', () => { let jsManifest = gulp.src([ config.manifest.jsProdDest ]); let cssManifest = gulp.src([ config.manifest.cssProdDest ]); // TODO: figure out a DRY way to do this return gulp.src(config.views.src) .pipe(template({ facebookID: config.facebook.dev.id })) .pipe(cdnizer({ files: config.cdn.files, defaultCDNBase: config.cdn.devBaseUrl })) .pipe(gulp.dest(config.views.devDest)) .pipe(buffer()) .pipe(gulp.src(config.views.src)) .pipe(template({ facebookID: config.facebook.prod.id })) //.pipe(revReplace({manifest: jsManifest})) //.pipe(revReplace({manifest: cssManifest})) .pipe(cdnizer({ files: config.cdn.files, defaultCDNBase: `${config.cdn.prodBaseUrl}` })) .pipe(gulp.dest(config.views.prodDest)); });
gulp.task('cdn', function () { return gulp.src("index.html") .pipe(cdnizer([ { file: 'bower_components/angular/angular.js', package: 'angular', cdn: 'https://ajax.googleapis.com/ajax/libs/angularjs/${ version }/angular.min.js' }, { file: 'bower_components/bootstrap/dist/css/bootstrap.css', package: 'bootstrap', cdn: 'https://maxcdn.bootstrapcdn.com/bootstrap/${ version }/css/bootstrap.min.css' }, { file: 'bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js', package: 'angular-bootstrap', cdn: 'https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/${ version }/ui-bootstrap-tpls.min.js' }, { file: 'css/style.css', cdn: 'css/style.min.css' }, { file: 'js/app.js', cdn: 'js/app.min.js' } ])) .pipe(minifyHTML()) .pipe(gulp.dest("dist")); });
function build() { const htmlFilter = filter(conf.path.tmp('*.html'), { restore: true }); const jsFilter = filter(conf.path.tmp('**/*.js'), { restore: true }); const cssFilter = filter(conf.path.tmp('**/*.css'), { restore: true }); return gulp.src(conf.path.tmp('/index.html')) .pipe(cdnizer({ allowRev: false, files: ['google:angular', 'cdnjs:angular-translate', 'cdnjs:angular-translate-loader-static-files', 'cdnjs:angular-drag-and-drop-lists', 'cdnjs:ng-inline-edit', 'cdnjs:angular-local-storage', 'cdnjs:angular-cookies', 'cdnjs:angular-translate-storage-cookie', 'cdnjs:angular-translate-storage-local', 'cdnjs:SHA-1', 'cdnjs:angulartics', 'cdnjs:angulartics-google-analytics', 'cdnjs:angular-animate', 'cdnjs:angular-aria', 'cdnjs:angular-messages', 'cdnjs:angular-material', 'cdnjs:angular-tinycolor', 'cdnjs:angular-sanitize', 'cdnjs:md-color-picker' ] })) .pipe(useref({}, lazypipe().pipe(sourcemaps.init, { loadMaps: true }))) .pipe(jsFilter) .pipe(ngAnnotate()) .pipe(uglify({ preserveComments: uglifySaveLicense })).on('error', conf.errorHandler('Uglify')) .pipe(rev()) .pipe(jsFilter.restore) .pipe(cssFilter) .pipe(cssnano()) //.pipe(rev()) .pipe(cssFilter.restore) .pipe(revReplace()) .pipe(sourcemaps.write('maps')) .pipe(htmlFilter) .pipe(htmlmin()) .pipe(htmlFilter.restore) .pipe(gulp.dest(conf.path.dist())); }
gulp.task('cdnize', ['useref'], function(){ return gulp.src("./dist/index.html") .pipe(cdnizer([ { file: 'vendor/d3.js', cdn: 'https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.14/d3.js' } ])) .pipe(gulp.dest("./dist")); })
gulp.task('cdnizer', function() { var cdnBase = 'https://assets.monolist.co/app/'; gulp.src(config.buildDir + 'css/**/*.css') .pipe(cdnizer({ defaultCDNBase: cdnBase, relativeRoot: 'css', files: ['**/*.{gif,png,jpg,jpeg,eot,svg,ttf,woff}'] })) .pipe(gulp.dest(config.styles.dest)); return gulp.src(config.buildDir + 'index.html') .pipe(cdnizer({ defaultCDNBase: cdnBase, files: ['**/*.{js,css}'] })) .pipe(gulp.dest(config.buildDir)); });
gulp.task('cdnizer-css', ['bower'], function () { return gulp.src('./Views/Shared/_AngularAppStyles.cshtml') .pipe(cdnizer([ { file: '~/bower_components/bootstrap/dist/css/bootstrap.css', package: 'bootstrap', cdn: '//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/${ version }/css/bootstrap.min.css' }, { file: '~/bower_components/awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css', package: 'awesome-bootstrap-checkbox', cdn: '//cdnjs.cloudflare.com/ajax/libs/awesome-bootstrap-checkbox/${ version }/awesome-bootstrap-checkbox.min.css' }, { file: '~/bower_components/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.css', package: 'bootstrap-switch', cdn: '//cdnjs.cloudflare.com/ajax/libs/bootstrap-switch/${ version }/css/bootstrap3/bootstrap-switch.min.css' }, { file: '~/bower_components/datatables/media/css/jquery.dataTables.css', cdn: '//cdnjs.cloudflare.com/ajax/libs/datatables/1.10.11/css/jquery.dataTables.min.css' }, { file: '~/bower_components/datatables/media/css/dataTables.bootstrap.min.css', cdn: '//cdnjs.cloudflare.com/ajax/libs/datatables/1.10.11/css/dataTables.bootstrap.min.css' }, { file: '~/bower_components/textAngular/dist/textAngular.css', package: 'textAngular', cdn: '//cdnjs.cloudflare.com/ajax/libs/textAngular/${ version }/textAngular.css' }, { file: '~/bower_components/ng-table/dist/ng-table.min.css', package: 'ng-table', cdn: '//cdnjs.cloudflare.com/ajax/libs/ng-table/${ version }/ng-table.min.css' }, { file: '~/bower_components/angular-ui-select/dist/select.min.css', package: 'angular-ui-select', cdn: '//cdnjs.cloudflare.com/ajax/libs/angular-ui-select/${ version }/select.min.css' }, { file: '~/bower_components/jquery-ui/themes/smoothness/jquery-ui.min.css', package: 'jquery-ui', cdn: '//cdnjs.cloudflare.com/ajax/libs/jqueryui/${ version }/jquery-ui.min.css' }, { file: '~/bower_components/angular-material/angular-material.min.css', package: 'angular-material', cdn: '//ajax.googleapis.com/ajax/libs/angular_material/${ version }/angular-material.min.css' } ])) .pipe(gulp.dest('./Views/Shared/CDN')); });
gulp.task( 'html', ['clean', 'bower', 'scripts', 'partials', 'styles', 'htaccess'], function () { return gulp.src( 'src/*.php' ) .pipe( cdnizer( { allowMin: true, files: [ // JavaScript 'google:jquery', 'google:angular-loader', 'google:angular-resource', 'google:angular', { file: 'bower_components/angular-bootstrap/*.js', package: 'angular-bootstrap', cdn: 'cdnjs:angular-ui-bootstrap:${ filenameMin }' }, { file: 'bower_components/angular-ui-router/**/*.js', package: 'angular-ui-router', cdn: 'cdnjs:angular-ui-router:${ filenameMin }' }, { file: 'bower_components/moment/*.js', package: 'moment', cdn: 'cdnjs:moment.js:${ filenameMin }' }, { file: 'bower_components/underscore/underscore.js', package: 'underscore', cdn: 'cdnjs:underscore.js:underscore-min.js' }, { file: 'bower_components/papaparse/papaparse.js', package: 'papaparse', cdn: '//cdnjs.cloudflare.com/ajax/libs/PapaParse/4.1.1/papaparse.min.js' }, // CSS { file: 'bower_components/bootstrap/**/*.css', package: 'bootstrap', cdn: 'cdnjs:twitter-bootstrap:css/${ filenameMin }' } ] } ) ) .pipe( htmlreplace( { application: [ 'js/' + revisions['app.min.js'], 'js/' + revisions['templates.min.js'] ], styles: 'css/' + revisions['styles.min.css'] } ) ) .pipe( gulp.dest( 'dist' ) ); } );
gulp.task('app-templates', [], function() { return gulp.src(config.app.templates.src) .pipe(cdnizer({ defaultCDNBase: config.cdn.defaultBase, files: config.cdn.src, })) .pipe(cleanhtml()) .pipe(templateCache(config.app.templates.fileName, {module: config.app.templates.module, standalone: true})) .pipe(wrap('(function(angular){\'use strict\';<%= contents %>})(angular);')) .pipe(ifElse(isProduction, uglify)) .pipe(gulp.dest(config.app.buildDir)) .pipe(ifElse(isWatcher, size)) .pipe(ifElse(isWatcher, livereload)); });
gulp.task('compile-html', function() { // NOTE: this task does NOT depend on compileScripts and compileStyles, // therefore, it may incorrectly create the HTML file if called // directly. return gulp.src([join(cfg.compileDir, '/**/*.*'), '!' + join(cfg.compileDir, cfg.indexFile)], {read: false}) .pipe(inject(cfg.appFiles.html, { addRootSlash: false, sort: fileSorter, // see below ignorePath: join('/', cfg.compileDir, '/') })) .pipe(cdnizer(cfg.cdn)) .pipe(minifyHtml({empty:true,spare:true,quotes:true})) .pipe(gulp.dest(cfg.compileDir)) .pipe(gzip()) .pipe(gulp.dest(cfg.compileDir)) });
gulp.task('html', function() { return gulp .src('*.html') .pipe(cdnizer({ allowRev: true, allowMin: true, files: [ 'cdnjs:jquery', { cdn: 'cdnjs:twitter-bootstrap', package: 'bootstrap', test: 'typeof $().emulateTransitionEnd == "function"' }, 'cdnjs:d3', { file: 'js/jquery.dataTables.min.js', package: 'datatables.net', test: 'typeof $().DataTable() == "object"', cdn: '//cdn.datatables.net/${version}/js/jquery.dataTables.min.js' }, { file: 'js/dataTables.bootstrap.min.js', package: 'datatables.net', test: 'typeof $().DataTable() == "object"', cdn: '//cdn.datatables.net/${version}/js/dataTables.bootstrap.min.js' }, { file: 'js/dataTables.responsive.min.js', package: 'datatables.net-responsive-bs', test: 'typeof $().DataTable() == "object"', cdn: '//cdn.datatables.net/responsive/${version}/js/dataTables.responsive.min.js' }, { file: 'js/responsive.bootstrap.min.js', package: 'datatables.net-responsive-bs', test: 'typeof $().DataTable() == "object"', cdn: '//cdn.datatables.net/responsive/${version}/js/responsive.bootstrap.min.js' } ] })) .pipe(htmlmin({ collapseWhitespace: true })) .pipe(gulp.dest('dist')); });
gulp.task('cdnizer', function() { gulp.src("./src/index.html") .pipe(cdnizer([ 'google:angular', 'google:angular-animate', 'cdnjs:jquery', 'jsdelivr:lodash', { file: '**/bootstrap/**/*.css', package: 'bootstrap', cdn: '//maxcdn.bootstrapcdn.com/bootstrap/${ version }/css/${ filenameMin }' }, { file: '**/bootstrap/**/*.js', package: 'bootstrap', cdn: '//maxcdn.bootstrapcdn.com/bootstrap/${ version }/js/${ filenameMin }' } ])) .pipe(gulp.dest(".")); });
gulp.task('vendor-css', [], function() { return gulp.src(config.vendor.css.src) .pipe(sourcemaps.init()) .pipe(cached('vendor-css')) .pipe(rebaseUrls({root: config.cdn.root})) .pipe(cdnizer({ defaultCDNBase: config.cdn.defaultBase, files: config.cdn.src, })) .pipe(ifElse(isProduction, uglifyCss)) .pipe(remember('vendor-css')) .pipe(concat(config.vendor.css.fileName)) .pipe(sourcemaps.write('./')) .pipe(gulp.dest(config.vendor.buildDir)) .pipe(ifElse(isWatcher, size)) .pipe(ifElse(isWatcher, livereload)); });
gulp.task('app-css', [], function() { return gulp.src(config.app.sass.base) .pipe(sourcemaps.init()) .pipe(sass({includePaths: ['./node_modules/']})) .pipe(rebaseUrls({root: config.cdn.root})) .pipe(cdnizer({ defaultCDNBase: config.cdn.defaultBase, files: config.cdn.src, })) .pipe(ifElse(isProduction, uglifyCss)) .pipe(rename(config.app.sass.fileName)) .pipe(sourcemaps.write('./')) .pipe(gulp.dest(config.app.buildDir)) .pipe(ifElse(isWatcher, size)) .pipe(ifElse(isWatcher, livereload)) .pipe(ifElse(!isProduction, function() { return shell(['styleguide']); })); });
gulp.task('build', function () { return gulp.src("./app/index.html") // .pipe(inject(sources)) // only local sources .pipe(cdnizer([ { package: 'angular', file: 'app/bower_components/angular/angular.js', cdn: 'http://ajax.googleapis.com/ajax/libs/angularjs/${version}/angular.min.js' }, { package: 'angular-router', file: 'bower_components/angular-route/angular-route.js', cdn: 'http://ajax.googleapis.com/ajax/libs/angularjs/${version}/angular-route.js' }, { package : 'bootstrap', file : 'bower_components/bootstrap/dist/css/bootstrap.min.css', cdn : 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css' } ]) .pipe(gulp.dest("./dist"))); });
gulp.task('cdnize', function () { return gulp .src(config.src) .pipe(cdnizer(config.files)) .pipe(gulp.dest(config.dest)); });
gulp.task('cdnizer-js', ['bower'], function () { return gulp.src('./Views/Shared/_AngularAppScripts.cshtml') .pipe(cdnizer([ { file: '~/bower_components/jquery/dist/jquery.js', package: 'jquery', cdn: '//ajax.googleapis.com/ajax/libs/jquery/${ version }/jquery.min.js' }, { file: '~/bower_components/jquery-ui/jquery-ui.min.js', package: 'jquery-ui', cdn: '//cdnjs.cloudflare.com/ajax/libs/jqueryui/${ version }/jquery-ui.min.js' }, { file: '~/bower_components/jquery-migrate/jquery-migrate.js', package: 'jquery-migrate', cdn: '//cdnjs.cloudflare.com/ajax/libs/jquery-migrate/${ version }/jquery-migrate.min.js' }, { file: '~/bower_components/bootstrap/dist/js/bootstrap.js', package: 'bootstrap', cdn: '//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/${ version }/js/bootstrap.min.js' }, { file: '~/bower_components/bootstrap-hover-dropdown/bootstrap-hover-dropdown.js', package: 'bootstrap-hover-dropdown', cdn: '//cdnjs.cloudflare.com/ajax/libs/bootstrap-hover-dropdown/${ version }/bootstrap-hover-dropdown.min.js' }, { file: '~/bower_components/spin.js/spin.js', package: 'spin.js', cdn: '//cdnjs.cloudflare.com/ajax/libs/spin.js/${ version }/spin.min.js' }, { file: '~/bower_components/bootstrap-switch/dist/js/bootstrap-switch.js', package: 'bootstrap-switch', cdn: '//cdnjs.cloudflare.com/ajax/libs/bootstrap-switch/${ version }/js/bootstrap-switch.min.js' }, { file: '~/bower_components/angular/angular.js', package: 'angular', test: 'window.angular', cdn: '//ajax.googleapis.com/ajax/libs/angularjs/${ version }/angular.min.js' }, { file: '~/bower_components/angular-resource/angular-resource.js', package: 'angular-resource', cdn: '//ajax.googleapis.com/ajax/libs/angularjs/${ version }/angular-resource.min.js' }, { file: '~/bower_components/angular-animate/angular-animate.js', package: 'angular', cdn: '//ajax.googleapis.com/ajax/libs/angularjs/${ version }/angular-animate.min.js' }, { file: '~/bower_components/angular-sanitize/angular-sanitize.js', package: 'angular-sanitize', cdn: '//ajax.googleapis.com/ajax/libs/angularjs/${ version }/angular-sanitize.min.js' }, { file: '~/bower_components/angular-ui-router/release/angular-ui-router.js', package: 'angular-ui-router', cdn: '//cdnjs.cloudflare.com/ajax/libs/angular-ui-router/${ version }/angular-ui-router.min.js' }, { file: '~/bower_components/angular-bootstrap/ui-bootstrap-tpls.js', package: 'ui-bootstrap', cdn: '//cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/${ version }/ui-bootstrap-tpls.min.js' }, { file: '~/bower_components/underscore/underscore.js', package: 'underscore', cdn: '//cdnjs.cloudflare.com/ajax/libs/underscore.js/${ version }/underscore-min.js' }, { file: '~/bower_components/datatables/media/js/jquery.dataTables.min.js', cdn: '//cdnjs.cloudflare.com/ajax/libs/datatables/1.10.11/js/jquery.dataTables.min.js' }, { file: '~/bower_components/ng-table/dist/ng-table.min.js', package: 'ng-table', cdn: '//cdnjs.cloudflare.com/ajax/libs/ng-table/${ version }/ng-table.min.js' }, { file: '~/bower_components/ng-file-upload/ng-file-upload-all.min.js', package: 'ng-file-upload', cdn: '//cdnjs.cloudflare.com/ajax/libs/danialfarid-angular-file-upload/${ version }/ng-file-upload-all.min.js' }, { file: '~/bower_components/pusher/dist/pusher.js', package: 'pusher', cdn: '//cdnjs.cloudflare.com/ajax/libs/pusher/${ version }/pusher.min.js' }, { file: '~/bower_components/pusher-angular/lib/pusher-angular.js', package: 'pusher-angular', cdn: '//cdnjs.cloudflare.com/ajax/libs/pusher-angular/${ version }/pusher-angular.min.js' }, { file: '~/bower_components/rangy/rangy-core.min.js', package: 'rangy', cdn: '//cdnjs.cloudflare.com/ajax/libs/rangy/${ version }/rangy-core.min.js' }, { file: '~/bower_components/rangy/rangy-selectionsaverestore.min.js', package: 'rangy', cdn: '//cdnjs.cloudflare.com/ajax/libs/rangy/${ version }/rangy-selectionsaverestore.min.js' }, { file: '~/bower_components/textAngular/dist/textAngular-sanitize.min.js', package: 'textAngular', cdn: '//cdnjs.cloudflare.com/ajax/libs/textAngular/${ version }/textAngular-sanitize.min.js' }, { file: '~/bower_components/textAngular/dist/textAngular.min.js', package: 'textAngular', cdn: '//cdnjs.cloudflare.com/ajax/libs/textAngular/${ version }/textAngular.min.js' }, { file: '~/bower_components/angular-ui-select/dist/select.min.js', package: 'angular-ui-select', cdn: '//cdnjs.cloudflare.com/ajax/libs/angular-ui-select/${ version }/select.min.js' }, { file: '~/bower_components/dndLists/angular-drag-and-drop-lists.min.js', package: 'dndLists', cdn: '//cdnjs.cloudflare.com/ajax/libs/angular-drag-and-drop-lists/${ version }/angular-drag-and-drop-lists.min.js' }, { file: '~/bower_components/angular-messages/angular-messages.min.js', package: 'angular-messages', cdn: '//cdnjs.cloudflare.com/ajax/libs/angular-messages/${ version }/angular-messages.min.js' }, { file: '~/Scripts/lib/jquery.blockui.min.js', cdn: '//cdnjs.cloudflare.com/ajax/libs/jquery.blockUI/2.70/jquery.blockUI.min.js' }, { file: '~/bower_components/angular-aria/angular-aria.min.js', package: 'angular-aria', cdn: '//ajax.googleapis.com/ajax/libs/angularjs/${ version }/angular-aria.min.js' }, { file: '~/bower_components/angular-material/angular-material.js', package: 'angular-material', cdn: '//ajax.googleapis.com/ajax/libs/angular_material/${ version }/angular-material.min.js' }, { file: '~/bower_components/noty/js/noty/packaged/jquery.noty.packaged.min.js', package: 'noty', cdn: '//cdnjs.cloudflare.com/ajax/libs/jquery-noty/2.3.8/packaged/jquery.noty.packaged.min.js' } ])) .pipe(gulp.dest('./Views/Shared/CDN')); });
gulp.task('cdnize', ['inject'], function () { return gulp.src('.tmp/*.html') .pipe(cdnizer({ //configure cdnizer's version and naming settings allowRev: false, //stricter version matching allowMin: true, //request minified files relativeRoot: 'src/', //asset root directory fallbackTest: '<script>if(!(${ test })) cdnizerLoad("${ filepathRel }");</script>', files: [ //manual cdn configuations for all dependencies, //including tests for missing individual angular modules { file: '**/angular/angular.js', package: 'angular', // cdn: 'cdnjs:angular:${ filenameMin }' cdn: '//cdnjs.cloudflare.com/ajax/libs/angular.js/${ version }/${ filenameMin }', }, { file: '**/angular-sanitize/*.js', package: 'angular-sanitize', cdn: '//cdnjs.cloudflare.com/ajax/libs/angular.js/${ version }/${ filenameMin }', test: 'testModule("ngSanitize")' }, { file: '**/angular-touch/*.js', package: 'angular-touch', cdn: '//cdnjs.cloudflare.com/ajax/libs/angular.js/${ version }/${ filenameMin }', test: 'testModule("ngTouch")' }, { file: '**/angular-messages/*.js', package: 'angular-messages', cdn: '//cdnjs.cloudflare.com/ajax/libs/angular.js/${ version }/${ filenameMin }', test: 'testModule("ngMessages")' }, { file: '**/angular-bootstrap/*.js', package: 'angular-bootstrap', cdn: 'cdnjs:angular-ui-bootstrap:${ filenameMin }', test: 'testModule("ui.bootstrap")' }, { file: '**/lodash/*.js', package: 'lodash', cdn: 'cdnjs:lodash.js:${ filenameMin }', test: 'window._' }, { file: '**/angular-dialog-service/**/*.js', package: 'angular-dialog-service', cdn: 'cdnjs:angular-dialog-service:${ filenameMin }', test: 'testModule("dialogs.main")' }, { file: '**/angular-dialog-service/**/*.css', package: 'angular-dialog-service', cdn: 'cdnjs:angular-dialog-service:${ filenameMin }', }, { file: '**/ui-router-extras/**/*.js', package: 'ui-router-extras', cdn: '//cdnjs.cloudflare.com/ajax/libs/ui-router-extras/${ version }/${ filenameMin }', test: 'testModule("ct.ui.router.extras")' }, // { // file: '**/angulartics-google-analytics/**/*.js', // cdn: '//cdnjs.cloudflare.com/ajax/libs/angulartics-google-analytics/0.1.1/${ filenameMin }', // test: 'testModule("angulartics.google.analytics")' // }, { file: '**/ngDialog/**/*.js', package: 'ngDialog', cdn: 'cdnjs:ng-dialog:js/${ filenameMin }', test: 'testModule("ngDialog")' }, { file:'**/ngDialog/**/*.css', package: 'ngDialog', cdn: 'cdnjs:ng-dialog:css/${ filenameMin }' }, { file: '**/ment.io/**/*.js', package: 'ment.io', cdn: '//cdn.jsdelivr.net/angular.ment-io/${ version }/${ filenameMin }', test: 'testModule("mentio")' }, { file: '**/angular-resource/*.js', package: 'angular-resource', cdn: '//cdnjs.cloudflare.com/ajax/libs/angular.js/${ version }/${ filenameMin }', test: 'testModule("ngResource")' }, { file: '**/angular-translate/*.js', package: 'angular-translate', cdn: '//cdn.jsdelivr.net/angular.translate/${ version }/${ filenameMin }', test: 'testModule("pascalprecht.translate")' }, { file: '**/waypoints/**/*.js', package: 'waypoints', cdn: 'cdnjs:waypoints:${ filename }', test: 'Waypoint' }, { file: '**/angular-ui-grid/**/*.js', package: 'angular-ui-grid', cdn: 'cdnjs:angular-ui-grid:${ filenameMin }', test: 'testModule("ui.grid")' }, { file: '**/angular-ui-grid/**/*.css', package: 'angular-ui-grid', cdn: 'cdnjs:angular-ui-grid:${ filenameMin }' }, { file: '**/angular-loading-bar/**/*.js', package: 'angular-loading-bar', cdn: 'cdnjs:angular-loading-bar:${ filenameMin }', test: 'testModule("angular-loading-bar")' }, { file: '**/angular-loading-bar/**/*.css', package: 'angular-loading-bar', cdn: 'cdnjs:angular-loading-bar:${ filenameMin }', }, { file: '**/angular-ui-router/**/*.js', package: 'angular-ui-router', cdn: 'cdnjs:angular-ui-router:${ filenameMin }', test: 'testModule("ui.router")' }, { file: '**/api-check/**/*.js', package: 'api-check', cdn: 'cdnjs:api-check:${ filenameMin }', test: 'window.apiCheck' }, { file: '**/angular-formly/**/*.js', package: 'angular-formly', cdn: 'cdnjs:angular-formly:${ filenameMin }', test: 'testModule("formly")' }, { file: '**/angulartics/**/*.js', package: 'angulartics', cdn: 'cdnjs:angulartics:${ filenameMin }', test: 'testModule("angulartics")' }, { file: '**/angular-scroll/*.js', package: 'angular-scroll', cdn: 'cdnjs:angular-scroll:${ filenameMin }', test: 'testModule("duScroll")' }, { file: '**/angular-elastic/*.js', package: 'angular-elastic', cdn: 'cdnjs:angular-elastic:${ filenameMin }', test: 'testModule("monospaced.elastic")' }, { file: '**/angular-formly-templates-bootstrap/**/*.js', package: 'angular-formly-templates-bootstrap', cdn: 'cdnjs:angular-formly-templates-bootstrap:${ filenameMin }', test: 'testModule("formlyBootstrap")' }, { file: '**/d3/*.js', package: 'd3', cdn: 'cdnjs:d3:${ filenameMin }', test: 'window.d3' }, { file : '**/dimple/**/*.js', package: 'dimple', cdn: '//cdnjs.cloudflare.com/ajax/libs/dimple/${ version }/dimple.latest.min.js', test: 'window.dimple' }, { file: '**/font-awesome/css/*.css', package: 'font-awesome', cdn: '//cdnjs.cloudflare.com/ajax/libs/font-awesome/${ version }/css/${ filenameMin }' } ] })) .pipe(gulp.dest('.tmp')) });
function cdnizeAndCopy() { return merge( gulp.src(['www/index.html']) .pipe(removeCode({production: true})) .pipe(cdnizer([{ file: 'lib/bootstrap-css-only/css/bootstrap.min.css', cdn: 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css' }])) .pipe(cdnizer([{ file: 'lib/angular-chart.js/dist/angular-chart.min.css', cdn: 'https://cdnjs.cloudflare.com/ajax/libs/angular-chart.js/0.10.0/angular-chart.min.css' }])) .pipe(cdnizer([{ file: 'lib/angular/angular.min.js', cdn: 'https://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular.js' }])) .pipe(cdnizer([{ file: 'lib/angular-sanitize/angular-sanitize.min.js', cdn: 'https://cdnjs.cloudflare.com/ajax/libs/angular-sanitize/1.5.3/angular-sanitize.min.js' }])) .pipe(cdnizer([{ file: 'lib/angular-bootstrap/ui-bootstrap-tpls.min.js', cdn: 'https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/1.3.1/ui-bootstrap-tpls.min.js' }])) .pipe(cdnizer([{ file: 'lib/angular-gettext/dist/angular-gettext.min.js', cdn: 'https://cdnjs.cloudflare.com/ajax/libs/angular-gettext/2.2.1/angular-gettext.min.js' }])) .pipe(cdnizer([{ file: 'lib/angular-xeditable/dist/js/xeditable.min.js', cdn: 'https://cdnjs.cloudflare.com/ajax/libs/angular-xeditable/0.1.11/js/xeditable.min.js' }])) .pipe(cdnizer([{ file: 'lib/angular-local-storage/dist/angular-local-storage.min.js', cdn: 'https://cdnjs.cloudflare.com/ajax/libs/angular-local-storage/0.2.7/angular-local-storage.min.js' }])) .pipe(cdnizer([{ file: 'lib/ng-file-upload/ng-file-upload.min.js', cdn: 'https://cdnjs.cloudflare.com/ajax/libs/danialfarid-angular-file-upload/12.0.4/ng-file-upload.min.js' }])) .pipe(cdnizer([{ file: 'lib/angular-chart.js/dist/angular-chart.min.js', cdn: 'https://cdnjs.cloudflare.com/ajax/libs/angular-chart.js/0.10.0/angular-chart.min.js' }])) .pipe(cdnizer([{ file: 'lib/Chart.js/Chart.js', cdn: 'https://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.1.1/Chart.min.js' }])) .pipe(gulp.dest('dist')), gulp.src(['www/img/**/*.*']) .pipe(gulp.dest('dist/img')) ) }