Я недавно завладел старым проектом AngularJS. Я начал прорабатывать и реорганизовывать его, а также немного реструктурировать код, чтобы упростить его поддержку и добавить некоторые нужные функции. Но я попал в область, с которой я не знаком, поэтому ищу какой-то совет.
В проекте используется grunt с кучей плагинов. Изначально я просто хотел управлять всеми включениями в html-файле, но чем больше я смотрел на наш Gruntfile, тем больше я осознавал, что это за крушение, и мне бы хотелось его почистить.
У нас есть 3 разных среды, с разными задачами для каждого. Вот что, по-моему, должно произойти для каждой среды:
Local Dev -
1) Compile sass and create sourcemaps (grunt-sass)
2) Autoprefixer (grunt-postcss)
3) copy html/scripts/css to /dist (?)
4) inject all scripts, dependencies (angular, bootstrap, etc), and css into index.html
(not sure what to use to do this? i think grunt-wiredep injects dependencies,
but not sure what else)
5) start connect server with livereload (grunt-contrib-connect)
6) run watch to watch for changes and trigger reload (grunt-contrib-watch)
Staging (по сути то же самое, что dev, только без локального сервера) -
1) Compile sass and create sourcemaps
2) Autoprefixer
3) copy html/scripts/css to /dist
4) inject all scripts, dependencies, and css into index.html
Производство -
1) Compile sass and create sourcemaps
2) Autoprefixer
3) bundle project scripts together (concat?)
4) minify/uglify css and project scripts bundle (one or the other? both?)
5) copy minified html/scripts/css to /dist (still not sure)
6) inject minified scripts/css into index.html (still not sure)
Я просто хочу убедиться, что у меня есть правильные идеи, или если я что-то упускаю. Любой полезный совет, пример gruntfiles и т. Д. Приветствуется! Или, может быть, есть лучший способ сделать все это, я даже не знаю. В основном я выполнял бэкэнд-работу с узлом, и у него никогда не было сложного процесса сборки, поэтому этот материал для внешнего интерфейса для меня совершенно новый. Спасибо!