2016-09-27 4 views
0

CSS [ 'sass : main'] 및 JS [ 'jshint : main', 'concat : main', 'uglify : 메인 '],하지만 별도의 파일 (JS와 CSS)에 대해 별도의 작업을 수행하고 변경 사항 (시계)을 듣고 싶습니다. 누군가 올바른 방향으로 나를 가리킬 수 있을지, 나는 내가 무엇을 검색해야하는지에 대해 정말로 확신하지 못한다. 시계가 처리 할 수있는 것이거나 다른 플러그인입니까? 나는 조금 쓸데없는 말투로 그렇게 사용하는 방법을 알아 내려고 노력하고있다. 감사합니다그란트 : CSS와 JS를위한 별도의 프로세스를 실행하는 방법

GruntFile.js :

module.exports = function(grunt) { 
    var config = { 
     pkg: grunt.file.readJSON('package.json'), 
     jshint: { 
      options: { 
       globals: { 
        jQuery: true, 
        console: true, 
        module: true, 
        document: true 
       } 
      }, 
      main: { 
       src: [ 
        'assets/templates/main/js/crm/*.js', 
       ] 
      } 
     }, 
     concat: { 
      options: { 
       separator: '\n\n' 
      }, 
      main: { 
       src: [ 
        'assets/templates/main/js/crm/*.js', 
       ], 
       dest: 'assets/templates/main/js/crm.min.js' 
      } 
     }, 
     sass: { 
      options: { 
       style: 'compressed' 
      }, 
      main: { 
       files: { 
        'assets/templates/main/css/main.min.css': 'assets/templates/main/sass/main.scss', 
       } 
      } 
     }, 
     uglify: { 
      options: { 
       banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n' 
      }, 
      main: { 
       src: 'assets/templates/main/js/crm.min.js', 
       dest: 'assets/templates/main/js/crm.min.js' 
      } 
     }, 
     watch: { 
      mainjs: { 
       files: ['assets/templates/main/js/crm/*.js'], 
       tasks: ['jshint:main', 'concat:main', 'uglify:main'], 
      }, 
      mainsass: { 
       files: ['assets/templates/main/sass/*.scss''], 
       tasks: ['sass:main'], 
      } 
     }, 
     concurrent: { 
      maincss: ['sass:main'], 
      mainjs: ['jshint:main', 'concat:main', 'uglify:main'] 
     } 
    }; 

    grunt.initConfig(config); 

    grunt.loadNpmTasks('grunt-contrib-jshint'); 
    grunt.loadNpmTasks('grunt-contrib-concat'); 
    grunt.loadNpmTasks('grunt-contrib-sass'); 
    grunt.loadNpmTasks('grunt-contrib-uglify'); 
    grunt.loadNpmTasks('grunt-contrib-watch'); 
    grunt.loadNpmTasks('grunt-concurrent'); 

    grunt.registerTask('main', ['jshint:main', 'concat:main', 'uglify:main', 'sass:main']); 
    grunt.registerTask('main-watch', ['jshint:main', 'concat:main', 'uglify:main', 'sass:main', 'concurrent:mainsass']); 
}; 

내가 실행하려고 작업 : 당신은 두 개의 동시 감시 작업을 수행 할 것 소리

$ grunt main-watch 
Loading "Gruntfile.js" tasks...ERROR 
SyntaxError: Invalid or unexpected token 
Warning: Task "main-watch" not found. Use --force to continue. 

Aborted due to warnings. 

답변

0

. 이 같은 구성을 사용하는 것을 수행 할 수 있습니다 false-logConcurrentOutput 기본적으로, 당신은 출력이 콘솔에 기록보고 싶다면, 그래서 당신이 true로 설정해야한다는 것을

... 

    concurrent: { 
     options: { logConcurrentOutput: true }, 
     watch: ['watch:mainjs', 'watch:mainsass'] 
    } 
}; 

... 

grunt.registerTask('main-watch', ['concurrent:watch']); 

참고.

관련 문제