* Your external libraries have dependencies, and having dependencies managed for you is a good thing.
* The external components you're using include both JS and CSS, and need to be served separately.
* Because you love your users, and want to concatenate your javascript and CSS to single files before serving it out to your users.
* Because you're including components that expose SASS mixins you want to use inside your existing code.
The hosted vs serving your own libraries is a complicated topic, but the basic answer comes down to "the less requests your clients have to make, the faster things will be".
concatting JS libraries into your own JS payload is a debatable practice. If it's a popular library, the user likely has it cached already and so the request to get it takes a few milliseconds. Where as your own JS payload will change with every release, forcing them to always re-download the same library code.
* Your external libraries have dependencies, and having dependencies managed for you is a good thing.
* The external components you're using include both JS and CSS, and need to be served separately.
* Because you love your users, and want to concatenate your javascript and CSS to single files before serving it out to your users.
* Because you're including components that expose SASS mixins you want to use inside your existing code.
The hosted vs serving your own libraries is a complicated topic, but the basic answer comes down to "the less requests your clients have to make, the faster things will be".