2014-10-20 87 views
0

我想用grunt運行我的第一個項目。我停留在點,當我嘗試在命令行中我得到一個錯誤運行的呼嚕聲/像這樣的警告:無法加載咕嚕,不知道我做錯了什麼或我需要做什麼

Traviss-MacBook-Pro-2:GRUNT Travis$ grunt compass 
>> Local Npm module "grunt-contrib-jshint" not found. Is it installed? 
>> Local Npm module "grunt-contrib-qunit" not found. Is it installed? 
Warning: Task "compass" not found. Use --force to continue. 

Aborted due to warnings. 

我安裝了jshint和qunit,所以我失去了對下一步該怎麼做解決這個問題。 任何幫助將不勝感激,謝謝。

這裏是我的grunt.js文件

module.exports = function(grunt) { 

    grunt.initConfig({ 
    pkg: grunt.file.readJSON('package.json'), 
    concat: { 
    options: { 
     separator: ';' 
    }, 
    dist: { 
     src: ['src/**/*.js'], 
     dest: 'dist/<%= pkg.name %>.js' 
    } 
    }, 
    uglify: { 
    options: { 
     banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n' 
    }, 
    dist: { 
     files: { 
     'dist/<%= pkg.name %>.min.js': ['<%= concat.dist.dest %>'] 
     } 
    } 
    }, 
    qunit: { 
    files: ['test/**/*.html'] 
    }, 
    jshint: { 
    files: ['Gruntfile.js', 'src/**/*.js', 'test/**/*.js'], 
    options: { 
     // options here to override JSHint defaults 
     globals: { 
     jQuery: true, 
     console: true, 
     module: true, 
     document: true 
     } 
    } 
    }, 
    watch: { 
     files: ['<%= jshint.files %>'], 
     tasks: ['jshint', 'qunit'] 
    } 
}); 

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

    grunt.registerTask('test', ['jshint', 'qunit']); 

    grunt.registerTask('default', ['jshint', 'qunit', 'concat', 'uglify']); 

}; 
+0

您可能想要發佈Gruntfile.js以獲得更多的上下文。另外,當你說你已經安裝了jshint和qunit時,如果你可以提供用於安裝它們的命令,那也可能有幫助(我是新來的,但我相信你需要使用,例如, 'npm install grunt-contrib-jshint --save-dev'與'npm install jshint --save-dev')。 – 2014-10-20 21:30:57

+0

我用這行安裝qunit sudo npm install qunit-cli並用這行安裝jslint sudo npm install jshint – 2014-10-20 21:56:57

+0

做@BrianHenry說的。並放下'sudo'。這可能不是你想要做的。 (雖然如果你習慣於apt-get,這是很自然的事情 – carbontax 2014-10-22 02:38:57

回答

1

您可能沒有使用qunit和jshint在繁重的任務形式「咕嚕-的contrib」模塊。你應該能夠檢查像npm ls | grep contrib

我建議,你的項目中,運行:

npm install grunt-contrib-jshint --save-dev 

npm install grunt-contrib-qunit --save-dev 

我會一直期待其他一些grunt.loadNpmTasks() -specified模塊的嗆過,所以我有點驚訝更多的錯誤不會發生。

至於「警告:任務」指南針「沒有找到」,你的grunt文件中沒有「指南針」目標(如qunitwatch等),所以這是有道理的。您要麼添加一個「羅盤」任務來執行該名稱下的任務,要麼在命令行上指定另一個目標爲grunt(或者省略執行默認['jshint', 'qunit', 'concat', 'uglify']任務的任何特定目標)。

+0

我把這些行添加到了我的項目中,並且在再次運行grunt之後得到了thie eeror.Traviss-MacBook-Pro-2:GRUNT Travis $ grunt 運行 「jshint:文件」(jshint)任務 >>免費1個文件皮棉 暗戰 「qunit:文件」(qunit)任務 警告:0/0斷言跑(0毫秒)使用--force繼續 因爲警告而中止 Traviss-MacBook-Pro-2:GRUNT Travis $ – 2014-10-20 22:39:00

+1

聽起來或許qunit期望至少有一次測試,並且你可能沒有定義?不確定qunit。你可以配置qunit任務運行與'force'選項(https://www.npmjs.org/package/grunt-contrib-qunit)。如果qunit不是你需要的,但是,應該能夠將它從'defaults'數組中移除(並將其移出目標,將其卸載等)。取決於你想要爲你做些什麼。 – 2014-10-20 23:13:17