Необходимые шаги для сборки приложения AngularJS из сложных задач? - PullRequest
0 голосов
/ 30 июня 2019

Я недавно завладел старым проектом 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 и т. Д. Приветствуется! Или, может быть, есть лучший способ сделать все это, я даже не знаю. В основном я выполнял бэкэнд-работу с узлом, и у него никогда не было сложного процесса сборки, поэтому этот материал для внешнего интерфейса для меня совершенно новый. Спасибо!

...