読者です 読者をやめる 読者になる 読者になる

Vagrant環境でload-grunt-taskを使ったGruntのtaskが遅いのでjit-gruntに変えた

インストール

% npm install jit-grunt -D
% npm uninstall load-grunt-tasks -D

jit-gruntを使うようにGruntfile.coffeeを書き換え。
後、watchにspawn: falseも追加しといた。

#Gruntfile.coffee

 module.exports = (grunt) ->
 
   # Load grunt tasks automatically
-  require("load-grunt-tasks")(grunt)
+  require('jit-grunt')(grunt)
+  grunt.loadNpmTasks('grunt-connect-proxy')
+  grunt.loadNpmTasks('grunt-protractor-runner')
+  grunt.loadNpmTasks('grunt-google-cdn')
+  grunt.loadNpmTasks('grunt-usemin')
 
   # Time how long tasks take. Can help when optimizing build times
   require("time-grunt")(grunt)

# ----------------省略------------------
   # Watches files for changes and runs tasks based on the changed files
     watch:
+      options:
+        spawn: false
# package.json
     "grunt-wiredep": "^1.7.0",
+    "jit-grunt": "^0.8.0",
     "jshint-stylish": "^0.2.0",
# ----------------省略------------------
     "karma-spec-reporter": "0.0.13",
-    "load-grunt-tasks": "^0.4.0",
     "protractor": "^1.0.0",

jit-gruntは load-grunt-tasksだと読み込んでくれてたものを読み込んでくれないパッケージがある*1ので、読み込んでくれないパッケージは明示的にloadNpmTasksする。 どれが読み込まれないのかよくわからなかったら、差し替えてtaskを実行してみれば見つからないと表示してくれるので、それを読みこめばOK.

jit-grunt: Plugin for the "useminPrepare" task not found.
If you have installed the plugin already, please setting the static mapping.
See https://github.com/shootaroo/jit-grunt#static-mappings

早くなりました。

参考

*1:読み込み規則がちがう