grunt错误:找不到模块'load-grunt-tasks'

当我使用grunt命令时,它显示以下错误:

$ 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 install,npm update命令。 如果有人能帮助我,这将是非常好的。 谢谢!

添加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']); }; 

尝试运行:

 $ npm install 

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

我有同样的问题,对我来说,问题是在我的package.json中,我没有实际安装所需的NPM软件包,并没有像以前想象的那样自动安装。 试着做

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

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

我遇到了同样的问题,似乎gruntfile缺less必要的初始化步骤。

通过改变这个:

 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调用,我能够通过这个问题。 问题是,现在我得到了

任务“干净”没有find。 使用–force继续。

看着其余的咕噜文件,我没有看到一个注册任务干净。 如果我去的mean.io文档 ,它看起来像构build失败。 也许这是为什么的一部分? 我想我问了一些问题,这可能是为什么。 我会删除,并从顶部:)

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