Grunt不会启动:“>> ReferenceError:grunt没有定义”

我是NodeJS和Grunt的新手,我努力做这个工作。 这是我得到的:

$> grunt Loading "Gruntfile.js" tasks...ERROR >> ReferenceError: grunt is not defined Warning: Task "default" not found. Use --force to continue. Aborted due to warnings. 

这是我的Gruntfile:

 module.exports = function(grunt) { grunt.initConfig({ compass: { dist: { options: { config: 'config/config.rb' } } } }); }; grunt.loadNpmTasks('grunt-contrib-compass'); grunt.registerTask('default', 'compass'); 

这里是我的package.json:

 { "name": "tests", "version": "0.0.0", "description": "Grunt Tests", "main": "index.js", "devDependencies": { "grunt": "~0.4.2", "grunt-contrib-compass": "~0.6.0", "grunt-contrib-watch": "~0.5.3", "grunt-cli": "~0.1.11" }, "scripts": { "test": "grunt compass" }, "repository": { "type": "git", "url": "https://github.com/Bertrand31/grunttests.git" }, "keywords": [ "Grunt", "NodeJS", "NPM", "SASS", "Compass" ], "author": "Bertrand Junqua", "license": "GPL", "bugs": { "url": "https://github.com/Bertrand31/grunttests/issues" }, "homepage": "https://github.com/Bertrand31/grunttests" } 

哦,我正在Debian Wheezy上运行这个。

如果您有任何想法,请告诉我。 非常感谢你们!

您从grunt未定义的范围调用grunt.loadNpmTasksgrunt.registerTask 。 你需要在module.exports函数中调用它们:

 module.exports = function(grunt) { grunt.initConfig({ compass: { dist: { options: { config: 'config/config.rb' } } } }); // Call these here instead, where the variable grunt is defined. grunt.loadNpmTasks('grunt-contrib-compass'); grunt.registerTask('default', 'compass'); };