Programing

Grunt는 무엇입니까?

lottogame 2020. 10. 24. 09:25
반응형

Grunt는 무엇입니까?


나는 내가 처음 사용하는 Grunt에 들어 가려고 노력하고 있지만 그 유용성을 이해하지 못합니다.

나는 그것이 taskrunner라는 것을 이해합니다. 번들, uglify, jshint, minify 등과 같은 작업을 수행하는 데 사용할 수 있다는 것을 이해합니다. 스크립트 작업으로 바뀔 수있는 모든 것입니다.

하지만 이것이 어떤 이점을 제공하는지 모르겠습니다. 어쨌거나 거의 모두 명령 줄에서 실행할 수 있습니다. 즉, 간단한 쉘 스크립트를 사용하여 결합 할 수 있습니다. grunt + gruntfiles를 설정하고 작업을 작성하는 것이 쉘 스크립트를 작성하는 것보다 더 많은 작업이라고 생각합니다.

이것에 대해 내가 무엇을 놓치고 있습니까?


Grunt는 기본적으로 NodeJS 위에 작성된 빌드 / 작업 관리자입니다. Java 용 ANT에 해당하는 NodeJS 스택이라고합니다. 다음은 grunt를 사용하려는 몇 가지 일반적인 시나리오입니다.

  1. 최소화가 필요한 자바 스크립트 파일이있는 프로젝트가 있고 일반적으로 프런트 엔드 빌드를 별도로 생성합니다 (백엔드에 JAVA를 사용하는 경우). ( grunt-contrib-uglify )
  2. 개발 중에 컴퓨터에 코드를 저장할 때 브라우저가 페이지를 자동으로 다시로드하기를 원합니다 (작은 것처럼 보이지만 이로 인해 많은 시간이 절약되었다고 믿습니다). ( 라이브 재 장전 )
  3. 개발자가 자신의 컴퓨터에 코드를 저장할 때 JS 오류 / 일반 모범 사례 위반의 포괄적 인 목록이 표시되기를 원합니다. ( grunt-contrib-jshint )
  4. 개발 중에 개발자 컴퓨터에서 CSS 파일로 컴파일해야하는 SASS / LESS 파일이있는 프로젝트가 있습니다. 예를 들어 그가 SASS 파일을 저장할 때마다 자동으로 CSS 파일로 컴파일되어 페이지에 포함되도록 할 수 있습니다. . ( grunt-contrib-sass )
  5. UI에서 작업하는 프런트 엔드 개발자 팀과 백엔드에서 작업하는 백엔드 개발자 팀이 있습니다. 프런트 엔드 개발자가 매번 자체적으로 코드를 컴파일 및 배포 할 필요없이 백엔드 REST API를 사용하기를 원합니다. 기계. 궁금한 점이 있다면 XHR이 브라우저에서 도메인 간 허용되지 않기 때문에 일반적인 웹 서버 설정으로는 불가능합니다. Grunt는 grunt 연결 서버 내의 시스템에서 XHR 요청을 다른 시스템으로 리디렉션하도록 프록시를 설정할 수 있습니다! ( grunt-contrib-proxy, grunt-contrib-connect )

나는 당신의 쉘 스크립트가이 모든 것을 할 수 있다고 생각하지 않습니다. 요약하자면, Gruntfile.js를 설정하는 것은 자바 스크립트에 거의 노출되지 않은 사람에게 지루하고 / nodeJS를 처음 접하는 사람에게는 지루한 일입니다. 저는 학습자와 같은 고통을 겪었지만 Grunt는 놀라운 소프트웨어입니다. 프론트 엔드 프로젝트를 위해 적절한 Gruntfile.js를 설정하는 데 시간을 투자하십시오. 삶을 훨씬 쉽게 만들어 주신 신에게 감사 할 것입니다. :)

장점 대 셸 스크립트 :

  1. 이러한 모든 작업에 대해 쉘 스크립트를 작성하는 경우 모든 요구 사항에 맞게 유지 관리하고 사용자 정의하는 것이 지루합니다. Gruntfile.js는 실제로 매우 쉽습니다. 수행 할 작업, 각각의 소스 및 대상을 지정하여 초기화하는 구성이 있습니다.

  2. Yeoman, Gulp의 프로젝트 시드 생성기와의 통합은 고려해야 할 또 다른 주요 요소입니다. Yeoman과 Gulp에는 지능형 기본값이있는 Gruntfile.js가 함께 제공됩니다. 그의 팀에서 유일한 UI 기여자 인 사람에게 이것은 나에게 귀중한 일입니다!

  3. 프론트 엔드 기술을 연구하는 사람의 경우, 한 명 이상의 사람과 함께 일하는 경우, 그들이 당신을 알아가는 것보다 이미 많은 답변이 문서화되어있는 Grunt를 쉽게 알 수 있습니다. 쉘 스크립트. 이것은 대규모 팀의 요인 일 수 있습니다.

  4. Grunt를위한 수많은 플러그인은 기본 기능을 확장합니다. 쉘 스크립트가 매우 인기 있고 모듈식이 아니라면 플러그인이 빌드되는 것을 보지 못합니다. 이것은 또한 프로젝트에 새로운 프런트 엔드 기술을 포함하는 것으로 확장됩니다. 내일 프로젝트에서 typescript를 사용하려면 쉘 스크립트가이를 통합하고 자신의 노력으로 설명해야합니다. Grunt를 사용하면 "npm 설치"와 구성 추가만큼 간단합니다.


Accepted Answer 에서 지적한 대부분의 장점에 동의하지만 여전히 Grunt & Gulp 사용을 중단해야하는 이유 에서 Keith Cirkel이 강조한 단점을 고려해야합니다.

따라서 일부 이점은 Grunt 오버 헤드에 의해 반박되며 적어도 Grunt 사용 여부에 대한 최종 결정에서이 모든 것을 고려해야합니다.

참고 URL : https://stackoverflow.com/questions/29190910/what-is-grunt-for

반응형