【问题标题】:grunt error: cannot find module 'load-grunt-tasks'grunt 错误:找不到模块“load-grunt-tasks”
【发布时间】:2015-04-07 18:30:01
【问题描述】:

当我使用 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 load-grunt-tasks
  • $ npm install load-grunt-tasks load-grunt-tasks@3.1.0 node_modules\load-grunt-tasks ├── multimatch@2.0.0 (array-differ@1.0.0, array -union@1.0.1, minimatch@2.0.1) └── findup-sync@0.2.1 (glob@4.3.5) 再次运行 grunt 命令后出现以下错误:正在加载“Gruntfile.js”任务。 .ERROR >> TypeError:无法读取未定义@laggingreflex的属性“push”
  • 这样错误就解决了。这个新的错误很可能是你gruntfile.js中的一个错误,把它的内容贴出来
  • 好的。添加文件 gruntfile.js 的内容
  • 试试sudo npm install。有点长,但为我解决了各种错误

标签: node.js mean-stack


【解决方案1】:

尝试运行:

$ npm install

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

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,对我来说问题出在我的 package.json 中,我实际上并没有安装所需的 NPM 包,也没有像以前想象的那样自动安装。尝试做

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

    如果这不起作用,您能否提供 package.json 文件,以便我们获得更多信息。

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,好像 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 调用,我能够解决这个问题。问题是,现在我得到了

      找不到任务“清理”。使用 --force 继续。

      查看 grunt 文件的其余部分,我没有看到用于清理的注册任务。如果我去mean.io docs,看起来构建失败了。也许这就是为什么?我想我向 mean-cli 询问了 gulp 版本,这可能就是原因。我会从顶部删除并取走它:)

      【讨论】:

      • 正如我所怀疑的,我遇到的与@AtharvaPuranik 类似的问题显然是由在平均初始化过程中选择 gulp 选项引起的。我把那个代码搞砸了,这次重新运行 init 选择 grunt,它就像一个冠军。
      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2015-03-07
        • 2016-04-30
        • 1970-01-01
        • 1970-01-01
        • 2014-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-22
        相关资源
        最近更新 更多