jade 소스에 jade compile 시에 사용할 설정값을 넣어놨는데, 이녀석 때문에 compile 할 때마다 소스를 수정해 줘야 했다. 그래서 이것을 grunt 의 text-replace 를 이용해서 해결 하기로 했다.
구글링을 해서 찾아보니 여러개가 있었다. 일단 눈에 띄는 것만 적어보면 아래 3개가 있었다.
이 중에서 그냥 개인적으로 GitHub 에 정리된 내용이 보기 편해서 1번을 택했다.
이 grunt task 로 할일은 간단하다. 그냥 특정 파일에 특정 string 을 내가 원하는 string 으로 바꾸는 일(replace) 을 할 것이다.
설치
설치는 npm 을 통해 간단히 할 수 있다.npm install grunt-replace --save-dev
package.json
그리고 npm install 을 사용할 경우나, load-grunt-tasks(ref.2 참고) 를 사용하는 경우에는 package.json 에 grunt-replace 를 추가해 준다.Gruntfile.js
module.exports = function(grunt) { /* Load tasks */ require('load-grunt-tasks')(grunt); ...
package.json
{ "name": "mine", "version": "1.3.0", "devDependencies": { "grunt": "~0.4.4", ... "grunt-text-replace": "~0.4.0" "load-grunt-tasks": "~0.4.0" } }
task 만들기
이제 replace 하는 task 를 만들어 보자. 간단하게 아래처럼 task 를 만들어 줄 수 있다. 더 많은 예제는 ref. 1을 참고하도록 하자.module.exports = function(grunt) { /* Load tasks */ require('load-grunt-tasks')(grunt); /* Configure project */ grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), // Setup tasks replace:{ toA : { src: [mysrc + "jade/common/common.jade"], overwrite : true, replacements: [ { from: 'Red', to: 'Blue' }, { from: /(Red)\s(Apple)/, to: '$1-$2' } ] }, },
이렇게 task 를 만들면, common.jade 안의 "Red" 라는 string 을 모두 "Blue" 로 바꿔준다. 그리고 regex 를 사용한 부분은 Red Apple 을 Red-Apple 로 바꿔준다. 단 /.../g 옵션을 주지 않았기 때문에 한 번만 작동한다.
댓글 없음:
댓글 쓰기