alexserver
alexserver

Reputation: 1358

How to use grunt-forever and grunt-watch together

I have both files: app.js which starts the http server, and main.js which is compiled by browserify and used in html as

So I have a Grunt configured with forever, browserify and watch. I want that on app.js chance, the http must be restarted (via forever:restart), and when main.js changes, the build must be browserified (via browserify)

so, when i run grunt, says forever:start does not exist, any help ?

$ grunt
Warning: Task "forever:server1:start" not found. Use --force to continue.

this is my gruntfile:

module.exports = function(grunt) {

  // Project configuration.
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    browserify: {
      dist: {
        files: {
          'examples/public/js/module.js': ['examples/main.js']
        }
      }
    },
    forever: {
      server1: {
        options: {
          index: 'examples/app.js',
          logDir: 'examples/logs'
        }        
      }
    },
    watch: {
      app: {
        files: ['examples/*.js', 'examples/templates/*' ],
        tasks: ['forever:server1:start']
      },
      web: {
        files: ['examples/*.js', 'examples/templates/*' ],
        tasks: ['browserify']
      },
    }
  });

  //grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-browserify');
  grunt.loadNpmTasks('grunt-contrib-watch');

  // Default task(s).
  grunt.registerTask('default', ['browserify', 'forever:server1:start']);
  grunt.registerTask('restart', ['browserify', 'forever:server1:restart']);

};

Upvotes: 0

Views: 2519

Answers (1)

slikts
slikts

Reputation: 8157

The task isn't found because you're missing grunt.loadNpmTasks('grunt-forever'). You might also find more success using something like nodemon instead of grunt.

Upvotes: 1

Related Questions