Travis Michael Heller
Travis Michael Heller

Reputation: 1248

Unable to load grunt, not sure what i am doing wrong or what i need to do

I am trying to run my first project using grunt. i am stuck at the point when i try running grunt in the command line i get an error/warning like this:

Traviss-MacBook-Pro-2:GRUNT Travis$ grunt compass
>> Local Npm module "grunt-contrib-jshint" not found. Is it installed?
>> Local Npm module "grunt-contrib-qunit" not found. Is it installed?
Warning: Task "compass" not found. Use --force to continue.

Aborted due to warnings.

I installed both jshint and qunit so i am lost on what to do next for fixing this problem. Any help would be greatly appreciated, thank you.

Here is my grunt.js file

module.exports = function(grunt) {

  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
     concat: {
     options: {
        separator: ';'
     },
    dist: {
       src: ['src/**/*.js'],
       dest: 'dist/<%= pkg.name %>.js'
     }
   },
   uglify: {
     options: {
       banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n'
     },
     dist: {
       files: {
        'dist/<%= pkg.name %>.min.js': ['<%= concat.dist.dest %>']
       }
     }
   },
   qunit: {
     files: ['test/**/*.html']
   },
   jshint: {
     files: ['Gruntfile.js', 'src/**/*.js', 'test/**/*.js'],
     options: {
       // options here to override JSHint defaults
       globals: {
         jQuery: true,
        console: true,
        module: true,
         document: true
      }
    }
   },
    watch: {
      files: ['<%= jshint.files %>'],
      tasks: ['jshint', 'qunit']
    }
 });

  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-jshint');
  grunt.loadNpmTasks('grunt-contrib-qunit');
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-contrib-concat');

  grunt.registerTask('test', ['jshint', 'qunit']);

  grunt.registerTask('default', ['jshint', 'qunit', 'concat', 'uglify']);

 };

Upvotes: 0

Views: 430

Answers (1)

Brian Henry
Brian Henry

Reputation: 3171

You probably don't have the 'grunt-contrib' modules that use qunit and jshint in a grunt task form. You should be able to check with something like npm ls | grep contrib.

I'd suggest, within your project, running:

npm install grunt-contrib-jshint --save-dev

and

npm install grunt-contrib-qunit --save-dev 

I would've expected some of the other grunt.loadNpmTasks()-specified modules to choke too, so I'm a little surprised more errors are not happening.

As for "Warning: Task "compass" not found", there is no 'compass' target in your gruntfile (as there is for qunit, watch, etc.), so that makes sense. You'll either want to add in a 'compass' task to do stuff under that name or specify another target to grunt on the command-line (or omit any specific target to execute your default ['jshint', 'qunit', 'concat', 'uglify'] tasks).

Upvotes: 1

Related Questions