회사에서 게임 개발/운영 업무를 하다보니 신규 컨텐츠 제작 시 반복적인 신규 리소스 배포작업을 하고 있었습니다.
node.js 공부도 할겸 배포 스크립트 만들어봤습니다.
파일 복사하기
파일 복사 테스트를 위해 하드코딩으로 이미지 파일을 입력받은 아이디로 리네임된 파일을 복사 테스트를 해보았습니다.
Gruntfile.js
'use strict';
module.exports = function(grunt) {
var readline = require('readline');
var resourceId = -1;
// Project configuration.
grunt.initConfig({
copy: {
main: {
}
}
});
grunt.registerTask('question', function() {
var done = this.async();
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.question('Input resource ID: ', function(answer) {
rl.close();
resourceId = answer;
grunt.log.writeln('입력받은 아이디: ' + resourceId);
done();
});
});
grunt.registerMultiTask('copy', function() {
var options = this.options({
encoding: grunt.file.defaultEncoding,
timestamp: false,
mode: false
});
var copyOptions = {
encoding: options.encoding,
process: options.process,
noProcess: options.noProcess
};
var srcPath = 'grunt.png';
var destPath = resourceId + '.png';
grunt.file.copy(srcPath, destPath, copyOptions);
});
grunt.registerTask('default', [
'question', 'copy'
]);
};
파일 복사 작업을 진행하는 copy
라는 멀티 태스크를 만들고 디폴트 태스크에 추가하였습니다.
입력받은 아이디를 사용해야하기 때문에 question
태스크 다음에 실행되도록 순서를 지정하였습니다.
실행을 하면 다음과 같이 복사작업이 완료됩니다.
PS E:\temp\sources\grunt> grunt
Running "question" task
Input resource ID: UWO_22
입력받은 아이디: UWO_22
Running "copy:main" (copy) task
Done, without errors.
멀티태스크로 만들 경우 grunt.initConfig({...})
에 설정 값이 없으면 태스크를 인식하지 못하는 듯 합니다. 아직 아무런 값이 없지만 grunt.initConfig({...})
에 copy
태스크 설정을 합니다.
파일 복사 테스트도 끝났으니 이제 마지막 배포 작업만이 남았습니다.
'연구소 > node.js' 카테고리의 다른 글
node.js + grunt 로 배포 스크립트 만들기 - 배포하기 (0) | 2016.04.15 |
---|---|
node.js + grunt 로 배포 스크립트 만들기 - 아이디 입력받기 (0) | 2016.04.15 |
node.js + grunt 로 배포 스크립트 만들기 - 개요, 사전작업 (0) | 2016.04.15 |
[Windows] node.js 시작하기 (0) | 2016.04.05 |