找不到任务目录“grunt”

时间:2016-07-30 22:44:01

标签: javascript node.js gruntjs

我正在尝试设置Grunt任务,但我在终端中收到警告

*>> Tasks directory "grunt" not found.

Warning: Task "undefined" not found. Use --force to continue.

Aborted due to warnings.*

我正在学习由Sr. Carlos Santana在本视频3中制作的开发NODE + Angular的一个例子:https://www.youtube.com/watch?v=juDeLmGjX8k

Grunt版本:

grunt-cli v1.2.0 grunt v1.0.1

节点版本:v5.1.0

Gruntfile.js

'use strict';

module.exports = function(grunt){
    grunt.loadNpmTasks('grunt-jscs');
    grunt.loadNpmTasks('grunt-contrib-jshint');
    grunt.loadNpmTasks('grunt-githooks');
    grunt.loadNpmTasks('grunt-shell');
    grunt.loadTasks('grunt');

    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        jscs:{
            options:{
                config: '.jscsrc',
                reporter: 'checkstyle'
            },
            src: [
                'Gruntfile.js',
                'src/**/*.js',
                '!src/public/bower_components/**'
            ]
        },
        jshint:{
            options: {
                jshintrc: '.jshintrc',
                reporter: 'checkstyle'
            },
            src: [
                'Gruntfile.js',
                'src/**/*.js',
                '!src/public/bower_components/**'
            ]
        },
        githooks: {
            all: {
                options:{
                    endMarker: ''
                },
                'pre-commit': 'analyze',
                'post-checkout': 'shell:gitLog',
                'post-commit': 'shell:gitLog',
                'post-merge': 'shell:gitLog shell:npmInstall'
            }
        },
        shell: {
            gitLog: {
                command: 'git log -1 > git-info.txt'
            },
            npmInstall: {
                command: 'npm install'
            },
            serverLogs: {
                command: 'pm2 logs'
            },
            serverStatus: {
                command: 'pm2 list'
            },
            serverStop: {
                command: 'pm2 kill'
            },
            serverDelete: {
                command: 'pm2 delete pm2.json'
            },
            serverStart:{
                command: 'pm2 start pm2.json'
            }
        }
    });
    grunt.registerTask('default', ['analyze']);
    grunt.registerTask('analyze', 'Validate code style' ['jshint', 'jscs']);
    grunt.registerTask('status', 'Shows status os node processes', ['shell:serverStatus']);
    grunt.registerTask('stop', 'Stop node processes', ['shell:serverStop']);
    grunt.registerTask('start', 'Start node processes', ['shell:serverStart']);
    grunt.registerTask('restart', 'Restart node processes', ['stop', 'start']);
    grunt.registerTask('logs', 'Tail logs for all pm2 processes', ['shell:serverLogs']);
};

的package.json

{
  "name": "StudioVictory",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "preinstall": "npm prune",
    "postinstall": "bower prune; bower install; grunt githooks"
  },
  "autor": "Carlos Santana",
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "git://github.com/XXX/XX.git"
  },
  "dependencies": {
    "body-parser": "~1.15.1",
    "cookie-parser": "~1.4.3",
    "debug": "~2.2.0",
    "express": "~4.13.4",
    "express-handlebars": "latest",
    "lodash": "*",
    "morgan": "~1.7.0",
    "stylus": "latest",
    "nib": "latest",
    "js-yaml": "latest"
  },
  "devDependencies": {
    "bower": "latest",
    "grunt": "latest",
    "grunt-contrib-jshint": "latest",
    "grunt-githooks": "latest",
    "grunt-jscs": "latest",
    "grunt-npm-install": "latest",
    "grunt-shell": "latest"
  }
}

执行:grunt -v:

Initializing
Command-line options: --verbose

Reading "Gruntfile.js" Gruntfile...OK

Registering Gruntfile tasks.

Registering "grunt-jscs" local Npm module tasks.
Reading C:\JACS\WampServer2.5\www\NODEJS\StudioVictory\node_modules\grunt-jscs\package.json...OK
Parsing C:\JACS\WampServer2.5\www\NODEJS\StudioVictory\node_modules\grunt-jscs\package.json...OK
Loading "jscs.js" tasks...OK
+ jscs

Registering "grunt-contrib-jshint" local Npm module tasks.
Reading C:\JACS\WampServer2.5\www\NODEJS\StudioVictory\node_modules\grunt-contrib-jshint\package.json...OK
Parsing C:\JACS\WampServer2.5\www\NODEJS\StudioVictory\node_modules\grunt-contrib-jshint\package.json...OK
Loading "jshint.js" tasks...OK
+ jshint

Registering "grunt-githooks" local Npm module tasks.
Reading C:\JACS\WampServer2.5\www\NODEJS\StudioVictory\node_modules\grunt-githooks\package.json...OK
Parsing C:\JACS\WampServer2.5\www\NODEJS\StudioVictory\node_modules\grunt-githooks\package.json...OK
Loading "githooks.js" tasks...OK
+ githooks

Registering "grunt-shell" local Npm module tasks.
Reading C:\JACS\WampServer2.5\www\NODEJS\StudioVictory\node_modules\grunt-shell\package.json...OK
Parsing C:\JACS\WampServer2.5\www\NODEJS\StudioVictory\node_modules\grunt-shell\package.json...OK
Loading "shell.js" tasks...OK
+ shell

Registering "grunt" tasks.
>> Tasks directory "grunt" not found.
Reading package.json...OK
Parsing package.json...OK
Initializing config...OK
Loading "Gruntfile.js" tasks...OK
+ analyze, default, logs, restart, start, status, stop

No tasks specified, running default tasks.
Running tasks: default

Running "default" task

Running "analyze" task
Warning: Task "undefined" not found. Use --force to continue.

Aborted due to warnings.

执行:grunt grunt

C:\JACS\WampServer2.5\www\NODEJS\StudioVictory>grunt grunt
>> Tasks directory "grunt" not found.
Warning: Task "grunt" not found. Use --force to continue.

Aborted due to warnings.

3 个答案:

答案 0 :(得分:0)

这意味着grunt无法找到您要运行的文件。检查该目录中是否有Grunfile.js。你还没有安装一个grunt模块吗?您可以运行grunt -v了解更多详情。

我假设您的gruntfile有一个名为grunt的任务目录,您并不打算调用它。我需要看到更多代码才能确定。

答案 1 :(得分:0)

(代表OP发布)

Grunt需要一个文件夹" grunt"在Gruntfile.js中的行:grunt.loadTasks(' grunt')

文件夹" grunt"需要一个文件" grunt-server.js"

请参阅:https://github.com/CodeJobs/StudioVictory/tree/develop/grunt

此文件夹在视频6中创建。

答案 2 :(得分:0)

我看到你的配置和命令我想也许你没有任何grunt命令任务,比如grunt.registerTask('default',['analyze']);然后grunt如何理解grunt grunt命令。您必须使用grunt名称创建任务,或者从Gruntfile.js所在的根运行grunt。

所以请只是运行咕噜声,它可能会解决您的问题。 grunt only命令查找Gruntfile.js并执行默认情况下的任务,否则运行带命令名的命令。