Grunt 작업을 사용자 정의하는 방법
때때로 우리는 우리 자신의 grunt 작업 중 일부를 써야합니다. 여기에 구체적인 예가 있습니다.
1. 준비
1. 새 디렉토리 G1을 만듭니다
2. 새 package.json을 만들고 g1에 넣습니다.
3. 새로운 gruntfile.js를 만들어 G1에 넣으십시오.
package.json
코드 사본은 다음과 같습니다.
{
"이름": "G1",
"버전": "0.1.0",
"저자": "@Snandy",
"홈페이지": "http://www.g1.com",
"devddependencies": {
"Grunt": "~ 0.4.0"
}
}
4. CD로 G1을 입력하고 Grunt 패키지 NPM 설치 설치
전체 디렉토리 구조는 다음과 같습니다
gruntfile.js는 일시적으로 비어 있습니다.
2. 가장 쉬운 작업을 만듭니다
grunt.registertask (taskname, [description,] taskfunction)
TaskName Task Name, 명령 줄에서 Grunt + TaskName 사용
작업에 대한 설명
작업 기능 작업 구현
gruntfile.js에서 코드를 작성하십시오
코드 사본은 다음과 같습니다.
module.exports = function (grunt) {
grunt.registertask ( 'mytask', '가장 간단한 작업 데모는 매개 변수에 따라 다른 출력을 인쇄합니다.', function (arg1, arg2) {
if (arguments.length === 0) {
grunt.log.writeln ( 'task' + this.name + ", 전달되지 않은 매개 변수 없음");
} else if (arguments.length === 1) {
grunt.log.writeln ( 'task' + this.name + "," + arg1)의 매개 변수가 있습니다.
} 또 다른 {
grunt.log.writeln ( 'task' + this.name + "에는 두 가지 매개 변수가 있습니다 :" + arg1 + "," + arg2);
}
});
};
전달 된 매개 변수에 따라 다른 인쇄물의 가장 간단한 구현을 구현하기 위해 "Mytask"작업이 등록되었습니다. 실행 결과에 따라 명령 줄을 입력해야합니다.
G1 디렉토리를 입력하고 Grunt Mytask를 입력하십시오
Grunt Mytask : Snandy를 입력하십시오
인수를 전달하려면 작업 이름에 결장을 추가하십시오.
Grunt Mytask : Snandy : Backus를 입력하십시오
결장 간격은 여러 매개 변수를 전달할 수 있습니다
3. 한 번에 여러 작업을 만듭니다
grunt.registermultitask (taskname, [description,] taskfunction)
매개 변수가 동일하고 메소드 이름이 다르다는 것을 알 수 있습니다. 그러나 사용 방법은 다르므로 구성을 먼저 초기화해야합니다. gruntfile.js는 다음과 같습니다.
코드 사본은 다음과 같습니다.
module.exports = function (grunt) {
grunt.initconfig ({
통나무: {
T1 : [1, 2, 3],
T2 : 'Hello World',
T3 : 거짓
}
});
grunt.registermultitask ( 'log', 'log stuff.', function () {
grunt.log.writeln (this.target + ':' + this.data);
});
};
G1 디렉토리를 입력하고 별도로 테스트하십시오
Grunt를 입력하면 차례 T1, T2, T3에서 3 개의 하위 작업이 실행됩니다.
Grunt Log : T1, Grunt Log : T2, Grunt Log : T3을 입력하십시오
4. 작업 간 통신
다른 작업은 다음과 같이 하나의 작업 내부에서 호출 될 수 있습니다.
코드 사본은 다음과 같습니다.
module.exports = function (grunt) {
grunt.registertask ( 'mytask', '가장 간단한 작업 데모는 매개 변수에 따라 다른 출력을 인쇄합니다.', function (arg1, arg2) {
if (arguments.length === 0) {
grunt.log.writeln ( 'task' + this.name + ", 전달되지 않은 매개 변수 없음");
} else if (arguments.length === 1) {
grunt.log.writeln ( 'task' + this.name + "," + arg1)의 매개 변수가 있습니다.
} 또 다른 {
grunt.log.writeln ( 'task' + this.name + "에는 두 가지 매개 변수가 있습니다 :" + arg1 + "," + arg2);
}
});
grunt.registertask ( 'default', 'default', function () {
// mytask에 전화하십시오
grunt.task.run ( 'mytask : param1 : param2')
})
};
명령 줄을 입력하고 Grunt를 입력하십시오
여러 작업을 호출하여 쉼표로 분리 된 실행 방법 또는 배열 형태로 전달하십시오.
코드 사본은 다음과 같습니다.
grunt.registertask ( 'default', 'default', function () {
grunt.task.run ( 'mytask1', 'mytask2')
// 또는
grunt.task.run ([ 'mytask1', 'mytask2']))
})