Skip to content

Instantly share code, notes, and snippets.

@ox
Created May 19, 2014 05:09
Show Gist options
  • Save ox/ec9873e42d83e07e863c to your computer and use it in GitHub Desktop.
Save ox/ec9873e42d83e07e863c to your computer and use it in GitHub Desktop.
A gist demonstrating cndizer's inability to correctly cdnify multiple angular components installed with bower.
<html>
<head></head>
<body>
<script type="text/javascript" src="/components/angular/angular.js"></script>
<script type="text/javascript" src="/components/angular-route/angular-route.js"></script>
<script type="text/javascript" src="/components/angular-resource/angular-resource.js"></script>
<script type="text/javascript" src="/components/angular-cookies/angular-cookies.js"></script>
<script type="text/javascript" src="/components/angular-sanitize/angular-sanitize.js"></script>
</body>
</html>
var cdnizerFactory = require('cdnizer');
var fs = require('fs');
// returns all the cdn routes for angular and all components passed into
// the function.
//
// ex: angularCdns(['route', 'cookies'])
var angularCdns = function (components) {
var files = [{
file: '/components/angular/angular.js',
package: 'angular',
cdn: '//ajax.googleapis.com/ajax/libs/angularjs/${ major }.${ minor }.${ patch }/${ filenameMin }'
}];
for (var i in components) {
var component = components[i];
files.push({
file: '/components/angular-' + component + '/angular-' + component + '.js',
package: 'angular-' + component,
cdn: '//ajax.googleapis.com/ajax/libs/angularjs/${ major }.${ minor }.${ patch }/${ filenameMin }'
});
}
return files;
};
var angularFiles = angularCdns(['route', 'resource', 'cookies', 'sanitize']);
console.log(angularFiles);
// [ { file: '/components/angular/angular.js',
// package: 'angular',
// cdn: '//ajax.googleapis.com/ajax/libs/angularjs/${ major }.${ minor }.${ patch }/${ filenameMin }' },
// { file: '/components/angular-route/angular-route.js',
// package: 'angular-route',
// cdn: '//ajax.googleapis.com/ajax/libs/angularjs/${ major }.${ minor }.${ patch }/${ filenameMin }' },
// { file: '/components/angular-resource/angular-resource.js',
// package: 'angular-resource',
// cdn: '//ajax.googleapis.com/ajax/libs/angularjs/${ major }.${ minor }.${ patch }/${ filenameMin }' },
// { file: '/components/angular-cookies/angular-cookies.js',
// package: 'angular-cookies',
// cdn: '//ajax.googleapis.com/ajax/libs/angularjs/${ major }.${ minor }.${ patch }/${ filenameMin }' },
// { file: '/components/angular-sanitize/angular-sanitize.js',
// package: 'angular-sanitize',
// cdn: '//ajax.googleapis.com/ajax/libs/angularjs/${ major }.${ minor }.${ patch }/${ filenameMin }' } ]
var cdnizer = cdnizerFactory(angularFiles);
console.log(cdnizer(fs.readFileSync('./index.html', 'utf-8')));
// <html>
// <head></head>
// <body>
// <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js"></script>
// <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular-route.js"></script>
// <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js"></script>
// <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular-cookies.js"></script>
// <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js"></script>
// </body>
// </html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment