2017-01-03 4 views
1

서버의 여러 프로젝트에서 나침반을 사용하기위한 gruntjs 구성이 있습니까?여러 프로젝트에서 gruntjs compass-watch를 사용하는 방법

[PROD] 
[project1] 
    [css] 
    styles.css 
    [js] 
    functions.js 
    index.php 
    [scss] 
    styles.scss 

[project2] 
    [css] 
    styles.css 
    [js] 
    functions.js 
    index.php 
    [scss] 
    styles.scss 

[project3] 
    [css] 
    styles.css 
    [js] 
    functions.js 
    index.php 
    [scss] 
    styles.scss 

[TEST] 
    [project1] 
    [css] 
    styles.css 
    [js] 
    functions.js 
    index.php 
    [scss] 
    styles.scss 

    [project2] 
    [css] 
    styles.css 
    [js] 
    functions.js 
    index.php 
    [scss] 
    styles.scss 

    [project3] 
    [css] 
    styles.css 
    [js] 
    functions.js 
    index.php 
    [scss] 
    styles.scss 

N.B. : 내 폴더 구조처럼 보이는 예, 테스트 폴더가 프로덕션 폴더 안에 있습니다. 자동 감시인을 실행해야하므로 같은 시간에 더 많은 프로젝트를 수행합니다.

답변

0

나는 나침반없이 scss 컴파일을 선호했다. 여기 수정 된 파일 만 컴파일하는 내 마지막 잡다한 스크립트 코드.

module.exports = function(grunt) { 

grunt.initConfig({ 
    pkg: grunt.file.readJSON('package.json'), 

    watch: { 
    sass: { 
     files: [ 
      'pippo/*/scss/*.scss', 
      'pippo/test/*/scss/*.scss' 
     ], 
     tasks: ['sass'], 
     options: { 
      spawn: false 
     } 
    } 
    }, 

    sass: { 
    dist:{ 
     options: { 
      style: 'compressed' 
     }, 
     files: { 
     'pippo/test/statics/css/ie.css' : 'pippo/test/statics/scss/ie.scss' 
     } 
    } 
    } 

}); 

grunt.event.on('watch', function(action, filepath) { 
    var filepath_scss = filepath; 
    var filepath_css = filepath.replace("scss", "css"); 
    filepath_css = filepath_css.replace("scss", "css"); 
    var finalpath = {}; 
    finalpath[filepath_css] = filepath_scss; 
    grunt.config('sass.dist.files', finalpath); 
}); 

grunt.loadNpmTasks('grunt-contrib-sass'); 
grunt.loadNpmTasks('grunt-contrib-watch'); 
grunt.registerTask('default',['watch']); 
};