2015-02-07 194 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文件,以便我們獲得更多信息。