yatskevich / grunt-bower-task

Grunt plugin for Bower
MIT License
490 stars 120 forks source link

Version 1.0.0 Roadmap #93

Open yatskevich opened 10 years ago

yatskevich commented 10 years ago

For more than a year grunt-bower-task has helped people to use Bower in Grunt-enabled projects. It started from a simple idea - fetch Bower components and put necessary files in lib directory, and grew into a more powerful tool during this period thanks to your contributions and feedback. Also we've realized that there are a lot of use cases which were not expected at the beginning.

In order to make grunt-bower-task even more usable we would like to hear from you again.

Here is a list of ideas/suggestions/features we want to discuss and implement in the next version. It is a difficult decision but we will probably sacrifice backward compatibility for the sake of ease of use.

Please, join the discussion! :smiley:

RishiRamraj commented 10 years ago

I should preface this comment by saying that I don't use node and am fairly new to front end development. I've spent some time recently setting up a front end build environment and I'm mostly speaking from that experience. I thought my use case might be of value, so here's my story.

The reason I use bower is to separate my front end dependencies from my build tools, which live in npm. I have the bower dependencies in a lib folder and I've configured grunt-bower-task to preserve as much of the original packages as possible using byComponentKeepStructure. I've also configured exportsOverride to allow all files (i.e. not just the main file).

I've found that preserving the original structure lets me debug any import problems like accidentally targeting the wrong file or missing other dependencies that need to be included in the html. That is, I can easily compare my local copy of the library with the online (often github) versions of the packages, and the relevant documentation. As long as the structure of the original library remains the same, my build process runs fine. When the structure changes, I should likely review the documentation anyway.

I don't have grunt configured to download all of the dependencies at build time so speed (filtering) isn't a concern. Instead, I have a separate bootstrap grunt task that prepares my local environment. Whenever I want to update my dependencies or add a new one, I just modify my bower.json and run bootstrap again.

My $0.02. Thanks for the awesome grunt task!

kaidokert commented 10 years ago

Any way to add functionality similar to what grunt-bower-requirejs does? I.e. update a require.js config file based on output paths. ( grunt-bower-requirejs gives them based on where bower keeps the files ).

Also, for some packages ( backbone.js ) that lack bower.json, they do have package.json that specifies "main". Would be nice to have an option to use these as defaults, even though bower itself refuses to use that information even as a fallback.

See 6d447d15a656c47c5ccf6eeb4e8e9ca61300ef1d for a basic version of requirejs config, basically cribbed from grunt-bower-requirejs )

micwehrle commented 10 years ago

I was just wondering if it made sense to offer an option like "copy-min" that would copy minified packages - if available ?

mokkabonna commented 10 years ago

I would at least still appreciate #42. What @kaidokert mentioned, inserting into paths like grunt-bower-requirejs does would be nice. Btw, both this project and that project uses the bower property in the config. Don't know who was first to use it but maybe that should be adressed with them.

chrisjlee commented 10 years ago

Is there an issue for the new roadmap? Also, there anyway currently to run this after running bower install without needing to do them seperately?

codewithtyler commented 8 years ago

Support for prune has been added.