Exemple #1
0
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));
});
Exemple #2
0
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"));


});
Exemple #3
0
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()));
}
Exemple #4
0
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"));
})
Exemple #5
0
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));

});
Exemple #6
0
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' ) );
} );
Exemple #8
0
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));
});
Exemple #9
0
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))
});
Exemple #10
0
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'));
});
Exemple #11
0
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("."));
});
Exemple #12
0
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));
});
Exemple #13
0
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));
});
Exemple #16
0
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'));
});
Exemple #17
0
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'))
    )
}