2016-03-08 70 views
0

這是我第一次嘗試設置Grunt。我看到一次只有兩個定義的任務中的一個正在運行。如果我將默認任務從「監視」切換到「sass」,則只有sass任務會運行(反之亦然)。所以這讓我覺得這兩個任務的代碼都是正確的,但也許需要其他一些配置設置或registerTask類型的函數。Grunt只運行一項任務

我的Gruntfile.js會導致這個問題嗎?

Gruntfile.JS

module.exports = function(grunt){ 

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

     sass:{ 
      dist:{ 
       options:{ 
        style:'expanded', 
        sourcemap:'none', 
       }, 
       files:{ 
        'style.css':'SCSS/style.scss' 
       } 
      } 
     }, 

// --- WATCH 

     watch:{ 
      css:{ 
       files: '**/*.scss', 
      } 
     }, 
    }); 

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

我假設你希望監視任務觸發sass任務,是嗎?如果是這樣,請在監視對象中指定[任務鍵(數組)]中的sass任務(https://github.com/gruntjs/grunt-contrib-watch#tasks)。 – steveax

回答

2
watch: { 
    css: { 
     files: '**/*.scss', 
     tasks: ['sass'], 
    }, 
}, 

就是這樣,只是sass任務添加到watch並且每當files改變,task將會運行。

或者,請不要將watch作爲任務註冊!您可以將sass設置爲默認的咕嚕聲任務,只需輸入grunt watch即可啓動觀看任務。

現在,如果您使用的是類似VS中的Nuget包,我理解註冊手錶,但如果是這種情況,我建議嘗試Powershell,至少爲了方便安裝新軟件包,節點模塊,獲取調試消息對於JS錯誤等。

+0

這對我有用。謝謝你的幫助! – ThisBetterWork