홈페이지 » 툴킷 » Grunt를 사용하여 워크 플로를 자동화하는 방법 [자습서]

    Grunt를 사용하여 워크 플로를 자동화하는 방법 [자습서]

    나는 자동화의 거대한 옹호자 인생을 훨씬 단순하게 만들어주기 때문입니다. 컴퓨터를 가지고있을 때 평생 동안 힘들어하는 단조롭고 단조로운 작업에 시간을 소비하는 이유는 무엇입니까? 웹 개발의 경우 특히 그러합니다..

    많은 개발 작업이 힘들 수 있습니다. 개발하는 동안 코드를 컴파일하고, 개발 버전을 밀면 파일을 연결 및 축소하고 개발 전용 리소스를 제거하는 등의 작업을 수행 할 수 있습니다. 상대적으로 복잡하지 않은 파일조차도 여러 파일을 삭제하거나 폴더 이름 바꾸기와 같은 것입니다. 우리 시대의 큰 덩어리를 차지할 수있다..

    이 기사에서는 Javascript 작업 주자 인 Grunt가 제공하는 뛰어난 기능을 활용하여 인생을 더 쉽게 만드는 방법을 보여줍니다. 나는 당신이 자바 스크립트 마법사가 아니어도 걱정할 필요가 없도록 전체 과정을 안내 할 것입니다.!

    Hongkiat.com에 대한 추가 정보 :

    • CSSMatic은 웹 디자이너를 위해 CSS를 쉽게 만듭니다.
    • 폴더 작업으로 Mac에서 작업 자동화하기
    • 작업으로 보관 용 파일 자동화하기
    • Android 기기에서 할 일을 자동화하는 데 도움이되는 10 가지 앱
    • Dropbox에 웹 사이트를 (자동으로) 백업하는 방법

    그루트 설치

    노드 패키지 관리자를 사용하기 때문에 Grunt 설치가 매우 쉽습니다. 즉, 노드 자체를 설치해야 할 수도 있습니다. 터미널이나 명령 프롬프트를 열고 (지금부터이 터미널에 전화 할 것입니다.) nmp -v.

    가지고있는 버전 번호가 보이면 npm 설치된 "명령을 찾을 수 없음"오류가 표시되면 노드 다운로드 페이지로 이동하여 필요한 버전을 선택하여 설치해야합니다.

    Node가 설치되면, Grunt를 얻는 것은 터미널에서 발행 된 단일 명령의 문제입니다.

    npm 설치 -g grunt-cli

    기본 사용법

    각 프로젝트마다 서로 다른 요구 사항이 있으므로 프로젝트 간 프로젝트 기반으로 Grunt를 사용하게됩니다. 이제 폴더를 만들고 터미널을 통해 프로젝트를 탐색 해 봅시다..

    그란트의 핵심은 두 개의 파일로 구성됩니다. package.jsonGruntfile.js. 패키지 파일은 자동화가 사용하는 모든 타사 종속성을 정의하고, Gruntfile은 방법 정확하게 이것들이 사용된다. 이제 다음 내용으로 베어 본 패키지 파일을 작성해 보겠습니다.

     "name": "test-project", "version": "1.0", "devDependencies":  "grunt": "~ 0.4.5",

    이름과 버전은 당신에게 달려 있고 의존성은 사용중인 모든 패키지를 포함해야합니다. 우리는 그 순간에 아무 것도하지 않기 때문에 Grunt 자체가 의존성으로 추가되는지 확인합니다..

    당신은 물결 모양의 선 (~)이 물결표라고 부르는 것이 무엇을하고 있는지 물어볼 것입니다..

    버전은 npm에 대한 시맨틱 버저 (version)의 규칙을 사용하여 요구 될 수 있습니다. 요컨대 :

    • 정확한 버전을 지정하십시오. 4.5.2
    • 보다 크거나 작음을 사용하여 다음과 같은 최소 또는 최대 버전을 나타낼 수 있습니다. > 4.0.3
    • 물결표를 사용하면 버전 블록이 지정됩니다. 사용 ~ 1.2 여겨진다 1.2.x, 1.2.0 이상 1.3 이하의 모든 버전

    버전을 지정하는 더 많은 방법이 있지만 대부분의 요구에 충분합니다. 다음 단계는 자동화를 수행 할 Gruntfile을 만드는 것입니다..

     module.exports = function (grunt) grunt.initConfig (pkg : grunt.file.readJSON ( 'package.json')); grunt.registerTask ( 'default', []); ; 

    이것은 기본적으로 Gruntfile의 골격입니다. 두 곳의 관심 장소가 있습니다. 한 위치는 initConfig () 기능. 이것은 모든 프로젝트 구성이 이루어지는 곳입니다. 여기에는 LESS / SASS 컴파일, 스크립트 축소 등의 작업이 포함됩니다..

    두 번째 위치는 작업을 지정하는 해당 기능 아래에 있습니다. 지정한 하나의 작업을 볼 수 있습니다. “태만”. 현재는 비어 있으므로 아무 것도하지 않지만 나중에 확장 할 것입니다.. 태스크는 본질적으로 프로젝트 구성의 비트와 조각을 큐에 넣고 실행합니다..

    예를 들어, 명명 된 작업 “스크립트” 모든 스크립트를 연결 한 다음 결과 파일을 축소 한 다음 최종 위치로 이동할 수 있습니다. 이 세 가지 조치는 모두 프로젝트 구성에서 정의되지만 “함께 뽑은” 작업에 의해. 이것이 아직 명확하지 않다면 걱정하지 마세요, 제가 어떻게하는지 보여 드리겠습니다..

    우리의 첫 번째 과제

    우리를 위해 하나의 자바 스크립트 파일을 축소하는 작업을 만들어 보겠습니다..

    새로운 작업을 추가 할 때마다 수행해야 할 4 가지 작업이 있습니다.

    • 필요한 경우 플러그인 설치
    • Gruntfile에서 요구하십시오.
    • 할 일 작성
    • 필요한 경우 태스크 그룹에 추가하십시오.

    (1) 플러그인 찾기 및 설치

    필요한 플러그인을 찾는 가장 쉬운 방법은 다음과 같이 Google에 입력하는 것입니다. “자바 스크립트 불평 플러그인을 축소”. 첫 번째 결과는 우리가 필요로하는 grunt-contrib-uglify 플러그인으로 연결됩니다..

    Github 페이지는 당신이 알아야 할 모든 것을 알려줍니다. 설치는 터미널에 한 줄로되어 있으므로 다음과 같이 사용해야합니다.

     npm은 grunt-contrib-uglify를 설치합니다. --save-dev 

    관리자 권한으로이 작업을 실행해야 할 수도 있습니다. 당신이 뭔가를 얻으면 npm ERR! root / Administrator로이 명령을 다시 실행하십시오.. 그냥 명령 앞에 sudo를 입력하고 프롬프트가 나타나면 암호를 입력하십시오 :

     sudo npm은 grunt-contrib-uglify를 설치합니다. --save-dev 

    이 명령은 실제로 package.json 파일을 만들고 거기에 의존성을 추가하면 수동으로 할 필요가 없습니다..

    (2) 그룬트 파일에 필요함

    다음 단계는 Gruntfile을 요구 사항으로 추가하는 것입니다. 저는 파일 상단에 플러그인을 추가하고 싶습니다. 여기에 추가 한 후 전체 Gruntfile이 있습니다. grunt.loadNpmTasks ( 'grunt-contrib-uglify');.

     module.exports = function (grunt) grunt.loadNpmTasks ( 'grunt-contrib-uglify'); grunt.initConfig (pkg : grunt.file.readJSON ( 'package.json')); grunt.registerTask ( 'default', []); ; 

    (3) 스크립트를 축소하는 작업 만들기

    우리가 논의했듯이, 이것은 initConfig () 기능. 플러그인 (그리고 대부분의 다른 플러그인)에 대한 Github 페이지는 많은 정보와 예제를 제공합니다. 내 테스트 프로젝트에서 사용한 내용은 다음과 같습니다..

     uglify : build : src : 'js / scripts.js', dest : 'js / scripts.min.js' 

    이것은 매우 간단합니다. scripts.js 내 프로젝트의 js 디렉토리에있는 파일과 축소 된 파일의 대상. 소스 파일을 지정하는 방법은 여러 가지가 있습니다. 나중에 살펴 보겠습니다..

    지금 당장은 Gruntfile이 추가 된 이후에 전체 Gruntfile을 살펴보고, 상황이 어떻게 어울리는 지 알 수 있도록 해보자..

     module.exports = function (grunt) grunt.loadNpmTasks ( 'grunt-contrib-uglify'); grunt.initConfig (pkg : grunt.file.readJSON ( 'package.json'), uglify : 빌드 : src : 'scripts.js', dest : 'scripts.min.js'); grunt.registerTask ( 'default', []); ; 

    (4)이 구성을 작업 그룹에 추가하십시오

    지금 당장 터미널에 가서 타이핑 할 수 있습니다. 꿀꺽 꿀꺽 삼키다 나중에 여러 작업을 실행하려면 작업 그룹이 필요합니다. 우리는 기본 태스크를 공백으로두고 그냥 뭔가 추가되기를 기다리므로 다음과 같이 수정하십시오.

     grunt.registerTask ( 'default', [ 'uglify']); 

    이 단계에서 터미널에 갈 수 있어야합니다. 꿀꿀 거리는 소리 그리고 그 축소가 일어나는 것을보십시오. 만들 것을 잊지 마세요. scripts.js 물론 파일!

    그렇게하기까지는 시간이 많이 걸리지 않았습니까? 비록 당신이이 모든 것을 처음 사용하고 계단을 통해 작업하는 데 약간의 시간이 필요했다 할지라도 그것이 저장하는 시간은 몇 가지 용도 내에서 시간을 소비 할 것입니다.

    파일 연결하기

    연결 파일을 보자. 여러 파일을 대상으로 지정하는 방법 배우기 길을 따라.

    연결은 여러 파일의 내용을 단일 파일로 결합하는 프로세스입니다. grunt-contrib-concat 플러그인이 필요합니다. 다음 단계를 수행해 보겠습니다.

    플러그인을 설치하려면 다음을 사용하십시오. npm grunt-contrib-concat 설치 --save-dev 터미널에. 완료되면 사용하기 전에 Gruntfile에 추가해야합니다. grunt.loadNpmTasks ( 'grunt-contrib-concat');.

    다음은 구성입니다. 세 가지 특정 파일을 결합합시다. 구문은 익숙 할 것입니다..

     dev : 'js / header.js', 'dev / js / myplugin.js', 'dev / js / footer.js'], dest : 'js / scripts.js' ,, 

    위의 코드는 소스로 제공된 3 개의 파일을 가져 와서 대상으로 제공된 파일로 결합합니다.

    이것은 이미 매우 강력하지만 새로운 파일이 추가되면 어떻게 될까요? 우리는 항상 여기에 다시 와야합니까? 물론, 우리는 연결할 전체 폴더를 지정할 수 있습니다..

     concat : dist : src : 'dev / js / * .js'], dest : 'js / scripts.js',, 

    이제 dev / js 폴더 내의 모든 javascript 파일이 하나의 큰 파일로 병합됩니다. js / scripts.js, 훨씬 낫다!

    이제는 작업을 만들어서 실제로 파일을 연결할 수 있습니다..

     grunt.registerTask ( 'mergejs', [ 'concat']); 

    이것은 더 이상 기본 작업이 아니므로 터미널을 실행할 때 터미널에 이름을 입력해야합니다. 꿀꿀 거리는 소리 명령.

     과격한 합병 

    자동화 자동화

    우리는 이미 많은 진전을 이루었지만 더 많은 것이 있습니다! 지금은 연결하거나 축소하려는 경우 터미널로 이동하여 적절한 명령을 입력해야합니다. 우리가 볼 시간이 아주 많아. 손목 시계 우리를 위해 이것을 할 명령. 또한 여러 작업을 한꺼번에 실행하는 방법을 배웁니다..

    우리는 무언가를보고 관여 할 필요가 있습니다. 나는 그것을 설치할 수 있고 yuor에있는 Gruntfile에 지금 추가 할 수 있다고 확신한다. 그래서 나는 나의 테스트 프로젝트에서 내가 사용하는 것을 보여주기 시작할 것이다..

     watch : scripts : files : [ 'dev / js / *. js'], 작업 : [ 'concat', 'uglify'],, 

    내가 볼 파일 세트를 명명했다. “스크립트”, 그냥 내가하는 일을 알아. 이 개체 내에서 감시 할 파일과 실행할 작업을 지정했습니다. 앞의 연결 예제에서 우리는 dev / js 디렉토리에있는 모든 파일들을 모았습니다.

    minification 예제에서 우리는이 파일을 축소했습니다. dev / js 폴더에서 변경 사항을 확인하고 이러한 변경 사항이있을 때마다 이러한 작업을 실행하는 것이 좋습니다..

    보시다시피 쉼표로 구분하여 여러 작업을 쉽게 호출 할 수 있습니다. 그것들은 연속적으로 수행 될 것이고, 먼저 연결이 될 것이고이 경우에는 축소가 수행 될 것입니다. 이것은 또한 존재하는 이유의 일종 인 작업 그룹으로도 수행 할 수 있습니다.

    이제 기본 작업을 수정할 수 있습니다.

     grunt.registerTask ( 'default', [ 'concat', 'uglify']); 

    이제 우리에게는 두 가지 선택이 있습니다. 스크립트를 연결하고 축소하고자 할 때마다 터미널로 전환하고 다음을 입력하십시오. 꿀꿀 거리는 소리. watch 명령을 사용하여 파일을 볼 수도 있습니다. 과란 트 시계.

    이 파일을 수정하기를 기다리고 거기에 앉아있을 것입니다. 일단 작업을 수행하면 할당 된 모든 작업이 수행되고 계속 진행됩니다..

    그게 훨씬 낫지. 우리 한테는 입력이 필요 없어. 이제 파일을 정리하면 모든 것이 잘 처리됩니다..

    개요

    플러그인을 설치하고 사용할 수있는 방법과 감시 명령이 작동하는 방법에 대한 기본적인 지식을 통해 자동화 중독자가 될 수 있습니다. Grunt에는 우리가 논의한 것보다 더 많은 것이 있지만 당신 스스로 처리 할 수있는 것은 없습니다..

    SASS 컴파일, 이미지 최적화, 자동 접두어 작성 등의 명령을 사용하여 우리가 논의한 단계를 따르고 플러그인이 필요로하는 구문을 읽는 것만으로도 충분합니다..

    Grunt에 대한 몇 가지 유용한 정보를 알고 있다면 의견에서 알려주십시오. Grunt와 같은 도구를 사용하는 방법에 대해 항상 관심이 있습니다.!