Здравствуйте. Начал использовать grunt для сборки проекта.
Использую такие плагины, как concat, uglify. Но при работе js очень важен порядок. И если объединить в неправильном порядке библиотеки, например, чтобы сначала шли jquery, boostrap, а только потом уже собственные скрипты, приходится вручную перечислять библиотеки. (Да и даже если вручную прописать порядок, то uglify при минификации может изменить этот самый порядок) Тогда как-то теряется смысл в этой всей автоматизации. Может быть я что-то делаю не так. Или же это стандартная практика. Гуру, разъясните, пожалуйста.
Хорошей практикой будет отдельное подключение библиотек и main.js
ну в плане можешь написать таск, чтобы jquery.min.js копировался из bower_components/... в dist/scripts/jquery.min.js
а все js из src/scriptsобъединялись и минифицировались в dist/scripts/main.min.js
Составлять списки с порядком загрузки вручную — дело неблагодарное и подверженное многочисленным ошибкам. Легко забыть добавить библиотеку в этот список или наоборот убрать, и поиметь проблемы на продакшене на ровном месте. Ну и вручную уплощать граф зависимостей скучно и не продуктивно.
Чтобы не иметь проблем с порядком загрузки, используются модульные системы. В таком случае сборщик и/или загрузчик самостоятельно и правильно определяет, что в каком порядке загружать.
Если хотите остаться на Grunt, то посоветую systemjs-builder и соответствующий плагин. Если не против поэкспериментировать, то посмотрите на Webpack.