2015-02-07 163 views
40

当我使用咕噜命令它显示我以下错误:咕噜错误:无法找到模块“负载咕噜任务”

$ grunt 
Loading "Gruntfile.js" tasks...ERROR 
>> Error: Cannot find module 'load-grunt-tasks' 
Warning: Task "default" not found. Use --force to continue. 

Aborted due to warnings. 


Execution Time (2015-02-07 18:05:42 UTC) 
loading tasks 339ms ███████████████████████████████████████████████ 99% 
Total 344ms 

我已经尝试过 - NPM安装,NPM更新命令。如果有人能帮助我,这将是一件好事。谢谢! Gruntfile.js

'use strict'; 

var paths = { 
    js: ['*.js', 'test/**/*.js', '!test/coverage/**', '!bower_components/**', 'packages/**/*.js', '!packages/**/node_modules/**', '!packages/contrib/**/*.js', '!packages/contrib/**/node_modules/**'], 
    html: ['packages/**/public/**/views/**', 'packages/**/server/views/**'], 
    css: ['!bower_components/**', 'packages/**/public/**/css/*.css', '!packages/contrib/**/public/**/css/*.css'] 
}; 

module.exports = function(grunt) { 

    if (process.env.NODE_ENV !== 'production') { 
    require('time-grunt')(grunt); 
    } 

    // Project Configuration 
    grunt.initConfig({ 
    pkg: grunt.file.readJSON('package.json'), 
    assets: grunt.file.readJSON('config/assets.json'), 
    clean: ['bower_components/build'], 
    watch: { 
     js: { 
     files: paths.js, 
     tasks: ['jshint'], 
     options: { 
      livereload: true 
     } 
     }, 
     html: { 
     files: paths.html, 
     options: { 
      livereload: true, 
      interval: 500 
     } 
     }, 
     css: { 
     files: paths.css, 
     tasks: ['csslint'], 
     options: { 
      livereload: true 
     } 
     } 
    }, 
    jshint: { 
     all: { 
     src: paths.js, 
     options: { 
      jshintrc: true 
     } 
     } 
    }, 
    uglify: { 
     core: { 
     options: { 
      mangle: false 
     }, 
     files: '<%= assets.core.js %>' 
     } 
    }, 
    csslint: { 
     options: { 
     csslintrc: '.csslintrc' 
     }, 
     src: paths.css 
    }, 
    cssmin: { 
     core: { 
     files: '<%= assets.core.css %>' 
     } 
    }, 
    nodemon: { 
     dev: { 
     script: 'server.js', 
     options: { 
      args: [], 
      ignore: ['node_modules/**'], 
      ext: 'js,html', 
      nodeArgs: ['--debug'], 
      delayTime: 1, 
      cwd: __dirname 
     } 
     } 
    }, 
    concurrent: { 
     tasks: ['nodemon', 'watch'], 
     options: { 
     logConcurrentOutput: true 
     } 
    }, 
    mochaTest: { 
     options: { 
     reporter: 'spec', 
     require: [ 
      'server.js', 
      function() { 
      require('meanio/lib/core_modules/module/util').preload(__dirname + '/packages/**/server', 'model'); 
      } 
     ] 
     }, 
     src: ['packages/**/server/tests/**/*.js'] 
    }, 
    env: { 
     test: { 
     NODE_ENV: 'test' 
     } 
    }, 
    karma: { 
     unit: { 
     configFile: 'karma.conf.js' 
     } 
    } 
    }); 

    //Load NPM tasks 
    require('load-grunt-tasks')(grunt); 

    /** 
    * Default Task 
    */ 
    grunt.hook.push('clean', -9999); 
    grunt.hook.push('concurrent', 9999); 
    if (process.env.NODE_ENV === 'production') { 
    grunt.hook.push('cssmin', 100); 
    grunt.hook.push('uglify', 200); 
    } else { 
    grunt.hook.push('jshint', -200); 
    grunt.hook.push('csslint', 100); 
    } 

    //Default task. 
    grunt.registerTask('default', ['hook']); 

    //Test task. 
    grunt.registerTask('test', ['env:test', 'mochaTest', 'karma:unit']); 

    // For Heroku users only. 
    // Docs: https://github.com/linnovate/mean/wiki/Deploying-on-Heroku 
    grunt.registerTask('heroku:production', ['cssmin', 'uglify']); 
}; 
+8

尝试'NPM安装负载咕噜-tasks' – laggingreflex 2015-02-07 18:19:46

+0

$ NPM安装负荷繁重的任务 [email protected] node_modules \负荷繁重的任务 ├──[email protected](阵列[email protected],[email protected],[email protected]) └──[email protected]([email protected]) 再次运行grunt命令后,我得到以下错误: 正在加载“Gruntfile.js”任务...错误 >> TypeError:无法读取未定义的属性“推” @laggingreflex – 2015-02-07 18:28:20

+0

这样错误就解决了。这个新错误可能是你的'gruntfile.js'错误,发布其内容 – laggingreflex 2015-02-07 18:58:19

回答

1

我有你有同样的问题的

Addding内容,却仿佛在gruntfile缺少必要的初始化步骤。

通过改变这样的:

require('load-grunt-tasks')(grunt); 

/** 
* Default Task 
*/ 
grunt.hook.push('clean', -9999); 

这样:

require('load-grunt-tasks')(grunt); 

grunt.loadNpmTasks('grunt-hook'); 

/** 
* Default Task 
*/ 
grunt.hook.push('clean', -9999); 

添加grunt.loadNpmTasks打电话,我能闯过这个问题。问题是,现在我越来越

Task "clean" not found. Use --force to continue.

看着其余的grunt文件,我没有看到一个清洁的注册任务。如果我去mean.io docs,它看起来像构建失败。也许这是为什么的一部分?我认为我问了一些吝啬鬼的版本,这可能是为什么。我会删除,并把它从顶部:)

+0

正如我怀疑的那样,我的问题,类似于@AtharvaPuranik,显然是由平均初始化过程中选择gulp选项造成的。我把这些代码吹掉了,这次重新运行init选择了grunt,它就像一个冠军一样工作。 – 2015-02-16 20:11:49

44

尝试运行:

$ npm install 

之后,如果你运行它,并错误仍然存​​在或者是否有另外一个,那么你可能还没有安装红宝石,指南针或两者:)

1

我认为这个问题与npm依赖关系被声明的位置以及Heroku处理它们的方式有关。 简而言之,请检查npm软件包是否作为开发依赖项,并将它们移动到依赖性块,如下所示:https://stackoverflow.com/a/20687098/532912

33

我有同样的问题,对我来说问题是在我的package.json中,我实际上并没有安装所需的NPM软件包,也没有按照以前的想法自动安装。尝试做

npm install --save-dev load-grunt-tasks 

如果这样做不起作用,那么您也可以提供package.json文件,以便我们获得更多信息。