Grunt 未启动:“>> ReferenceError:未定义 grunt”

Posted

技术标签:

【中文标题】Grunt 未启动:“>> ReferenceError:未定义 grunt”【英文标题】:Grunt doesn't launch : ">> ReferenceError: grunt is not defined" 【发布时间】:2013-12-13 08:54:18 【问题描述】:

我是 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 上运行它。

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

【问题讨论】:

您是否从与 Gruntfile 相同的目录运行命令? 我也不认为这有什么不同。但我认为你的注册任务应该是这样的:grunt.registerTask('default', ['compass']);. 【参考方案1】:

您在未定义 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');
;

【讨论】:

以上是关于Grunt 未启动:“>> ReferenceError:未定义 grunt”的主要内容,如果未能解决你的问题,请参考以下文章

当主机更改源时,grunt karma 对 vagrant 进行测试 grunt/karma 未检测到它

安装了Grunt但没有工作 - 小牛队的“命令未找到”

Grunt contrib sass NoMethodError:未定义的方法`<

取消 Grunt 中尚未启动的命令

使用grunt运行jest时未找到任何测试

grunt-nodemon 没有使用 nodemon 来启动服务器