cgross / angular-busy

Show busy/loading indicators on any element during $http requests (or any promise).
http://cgross.github.io/angular-busy/demo
MIT License
1.44k stars 257 forks source link

Export angular-busy as CommonJS-module #92

Open brunnurs opened 8 years ago

brunnurs commented 8 years ago

It would be great if we could include angular-busy with the CommonJS modularization-syntax. Using your great piece of code, especially in combination with NPM, browserify and AngularJS, would be much simpler.

As an example, have a look at my angular app.js file:

var app = angular.module('myProject', [
    'cgBusy',
    'ngFileSaver',
    'ngmap',
    require('angular-ui-router'),
    require('angular-animate'),
    require('angular-resource'),
    require('angular-ui-bootstrap'),
    require('ng-file-upload'),
    require('angular-smart-table'),
    require('angular-cookies'),
    require('angular-translate'),
    require('angular-dynamic-locale')

Most of my 3rd party dependencies (except of the first three) are referenced with the CommonJS require - keyword. With browserify, all I need to do is to execute browserify app.js > bundle.js and all dependencies (and even more important the transitive dependencies) are loaded from NPM in the specified version and bundled to one file. No need to add the files to my index.html manually or with additional tools like Grunt/Gulp. All we need to do is the standard angular initialization.

AFAIK, it is quite easy to implement it. Add an index.js- file with the following content to your repo (example is the angular-animate dependency):

require('./angular-animate');
module.exports = 'ngAnimate';

It is also an investment into the future, as the module-concept will be an important part of ECMAScript 6.

Let me know if I can help u!

craigcabrey commented 8 years ago

To add on, we should require the dist version of the library, not the one at the root of the repo (the dist version includes the default template):

require('./dist/angular-busy');
module.exports = 'cgBusy';
brunnurs commented 8 years ago

apparently the job has already been done by @myflowpl (https://github.com/myflowpl/angular-busy2). I use this fork now, which works perfectly with browserify/webpack. Many thanks for the work @myflowpl!