1

gruntfile.js的是:

'use strict';

module.exports = function(grunt) {
    // Project Configuration
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        watch: {
            jade: {
                files: ['app/views/**'],
                options: {
                    livereload: true,
                },
            },
            js: {
                files: ['gruntfile.js', 'server.js', 'app/**/*.js', 'public/js/**', 'test/**/*.js'],
                tasks: ['jshint'],
                options: {
                    livereload: true,
                },
            },
            html: {
                files: ['public/views/**'],
                options: {
                    livereload: true,
                },
            },
            css: {
                files: ['public/css/**'],
                options: {
                    livereload: true
                }
            }
        },
        jshint: {
            all: {
                src: ['gruntfile.js', 'server.js', 'app/**/*.js', 'public/js/**', 'test/**/*.js'],
                options: {
                    jshintrc: true
                }
            }
        },
        nodemon: {
            dev: {
                options: {
                    file: 'server.js',
                    args: [],
                    ignoredFiles: ['public/**'],
                    watchedExtensions: ['js'],
                    nodeArgs: ['--debug'],
                    delayTime: 1,
                    env: {
                        PORT: 3000
                    },
                    cwd: __dirname
                }
            }
        },
        concurrent: {
            tasks: ['nodemon', 'watch'],
            options: {
                logConcurrentOutput: true
            }
        },
        mochaTest: {
            options: {
                reporter: 'spec',
                require: 'server.js'
            },
            src: ['test/mocha/**/*.js']
        },
        env: {
            test: {
                NODE_ENV: 'test'
            }
        },
        karma: {
            unit: {
                configFile: 'test/karma/karma.conf.js'
            }
        }
    });

    //Load NPM tasks 
    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.loadNpmTasks('grunt-contrib-jshint');
    grunt.loadNpmTasks('grunt-mocha-test');
    grunt.loadNpmTasks('grunt-karma');
    grunt.loadNpmTasks('grunt-nodemon');
    grunt.loadNpmTasks('grunt-concurrent');
    grunt.loadNpmTasks('grunt-env');

    //Making grunt default to force in order not to break the project.
    grunt.option('force', true);

    //Default task(s).
    grunt.registerTask('default', ['jshint', 'concurrent']);

    //Test task.
    grunt.registerTask('test', ['env:test', 'mochaTest', 'karma:unit']);
};

当我输入时grunt,我得到:

$ grunt
Running "jshint:all" (jshint) task
>> 69 files lint free.

Running "concurrent:tasks" (concurrent) task
Running "nodemon:dev" (nodemon) task
Running "watch" task
Waiting...

通常它说Express started on Port 3000,但突然它不是。不知道发生了什么。有任何想法吗?

-v带着旗帜跑步时,我得到:

Running tasks: nodemon

    Running "nodemon" task

    Running "nodemon:dev" (nodemon) task
    Verifying property nodemon.dev exists in config...OK
    File: [no files]
    Options: file="server.js", args=[], ignoredFiles=["public/**"], watchedExtensions=["js"], nodeArgs=["--debug"], delayTime=1, env={"PORT":3000}, cwd="/Users/shamoon/Sites/blocksearcher"
    Loading "env.js" tasks...OK
    + env
    Loading "gruntfile.js" tasks...OK
    + default, test

    Running tasks: watch

    Running "watch" task
    Waiting...Verifying property watch exists in config...OK
    Verifying property watch.jade.files exists in config...OK
    Verifying property watch.js.files exists in config...OK
    Verifying property watch.html.files exists in config...OK
    Verifying property watch.css.files exists in config...OK
    Live reload server started on port: 35729


        Watching app/views for changes.
    Watching app/views/includes for changes.
    ...
4

2 回答 2

9

查看 grunt-nodemon 的变更日志:https ://github.com/ChrisWren/grunt-nodemon#changelog 。

您必须最近更新了依赖项,并且 grunt-nodemon 更改了一些属性。

- file is now script
- ignoredFiles -> ignore
- watchedFolders -> watch
- watchedExtensions -> ext
于 2014-01-20T13:30:03.443 回答
2

只需将您的 options.file 更改为脚本或保留两者。

nodemon: {
    dev: {
        script: 'server.js',
        options: {
            file: 'server.js',
            args: [],
            ignoredFiles: ['public/**'],
            watchedExtensions: ['js'],
            nodeArgs: ['--debug'],
            delayTime: 1,
            env: {
                PORT: 3000
            },
            cwd: __dirname
        }
    }
}
于 2014-01-29T16:10:51.557 回答