2014-11-16 3 views
0

나는 registerTask ('default', [ 'concat', 'uglify', 'watch'])가있는 gruntjs 파일을 가지고있다. 내 scss 파일을 저장하면 내 CSS 파일이 업데이트됩니다. 그러나 Grunt를 연결하여 내 JS를 uglify하려면 터미널에 들어가서 시계에서 빠져 나와 grunt 명령을 실행해야합니다. 그게 정말 짜증나.어떻게 파일을 저장할 때 gruntjs를 연결하고, uglify하고, 볼 수 있습니까?

내 JS 및/또는 CSS 파일을 저장할 때 이러한 모든 작업을 실행할 수있는 방법이 있습니까? 매번 터미널에 갈 필요없이? 그게 도움이된다면 내 gruntfile을 heres.

module.exports = function(grunt) { 
grunt.initConfig({ 
    pkg: grunt.file.readJSON('package.json'), 

    compass: { 
     dist: { 
      options: { 
       sassDir: 'sass', 
       cssDir: 'css' 
      } 
     } 
    }, 
    watch: { 
     css: { 
      files: '**/*.scss', 
      tasks: ['compass'] 
     } 
    }, 
    concat: { 
      options: { 
      separator: '\n\n' 
      }, 
      dist: { 
      src: ['js-game/*.js'], 
      dest: 'js/<%= pkg.name %>.js' 
      } 

    }, 
    uglify:{ 
     options:{mangle:false}, 
     my_target:{ 
      files:{'js/<%= pkg.name %>.min.js' : ['js/<%= pkg.name %>.js'] 

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

}

정말 고마워요 여러분.

scripts: { 
    files: ['**/*.js'], 
    tasks: ['jshint'], 
} 

작동해야 시계 작업에, 당신이해야 할 수 있습니다 : 당신의 Gruntfile.js에 따라서

scripts: { 
files: ['**/*.js'], 
tasks: ['jshint'], 
options: { 
    spawn: false, 
    } 
} 

을이 같은 것 위에 :

답변

0

나는 당신이 추가하면 생각

module.exports = function(grunt) { 

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

compass: { 
    dist: { 
     options: { 
      sassDir: 'sass', 
      cssDir: 'css' 
     } 
    } 
}, 
watch: { 
    css: { 
     files: '**/*.scss', 
     tasks: ['compass'] 
    }, 
    scripts: { 
     files: ['**/*.js'], 
     tasks: ['jshint'], 
     options: { 
     spawn: false, 
     } 
    } 
}, 
concat: { 
     options: { 
     separator: '\n\n' 
     }, 
     dist: { 
     src: ['js-game/*.js'], 
     dest: 'js/<%= pkg.name %>.js' 
     } 

}, 
uglify:{ 
    options:{mangle:false}, 
    my_target:{ 
     files:{'js/<%= pkg.name %>.min.js' : ['js/<%= pkg.name %>.js'] 

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

그럴 가능성이 있습니다.

+0

안녕하세요. 스튜어트에게 감사드립니다. 그것은 작동하지만 같은 방식으로 작동합니다. 그러나 나는 내가 생각하는 것을 할 수 없다는 것을 깨닫고있다. 'grunt'명령이 터미널을 실행할 때 모든 작업을 수행하지만 파일을 저장할 때 모든 작업을 수행하지는 않습니다. 어쩌면 그건 끔찍한 일 일까? 나는 모른다. – nickg

0

여러 작업을 추가하여 볼 수 있습니다. 당신이 CONCAT과 저장에 추하게하기를 원한다면 그래서 다음과 같이 할 수있는 :

watch: { css: { files: '**/*.scss', tasks: ['compass'] }, scripts: { files: ['js-game/*.js'], tasks: ['concat', 'uglify'], options: { spawn: false, } } },

난이 도움이되기를 바랍니다!

관련 문제