与Grunt同时运行`watch`&`nodemon`

 里 发布于 2023-01-30 10:44

我刚刚开始使用Grunt,并希望每次修改文件时使用[GitHub页面]运行grunt-contrib-watch [GitHub页面] lint我的JavaScript(使用grunt-contrib-jshint [GitHub页面])并运行grunt-nodemon [GitHub页面],同时使用grunt-concurrent [GitHub页面].

据我所知(我显然没有)我的Gruntfile应该:

    concurrent默认运行

    concurrent 运行 watch

    watchjshint每次修改文件时都会运行

Gruntfile.js

module.exports = function (grunt) {
    grunt.initConfig({
        concurrent: {
            dev: [
                'watch'
            ],
            options: {
                logConcurrentOutput: true
            }
        },
        jshint: {
            server: [
                '**/*.js',
                '!node_modules/**/*.js'
            ],
            options: {
                node: true
            }
        },
        watch: {
            all: [
                '**/*/.js',
                '!node_modules/**/*.js'
            ],
            tasks: [
                'jshint'
            ]
        }
    });

    grunt.loadNpmTasks('grunt-concurrent');
    grunt.loadNpmTasks('grunt-contrib-jshint');
    grunt.loadNpmTasks('grunt-contrib-watch');

    grunt.registerTask('default', [
        'concurrent:dev'/*,
        'jshint',
        'watch'*/
    ]);
};

    grunt.loadNpmTasks('grunt-concurrent');
    grunt.loadNpmTasks('grunt-contrib-jshint');
    grunt.loadNpmTasks('grunt-contrib-watch');

    grunt.registerTask('default', [
        'concurrent:dev'
    ]);
};

NB我还没有添加grunt-nodemon到混音中.

它看起来像是concurrent在运行,watch但是当我修改文件时,它似乎jshint没有运行.我当然不会在终端中获得任何输出(我认为logConcurrentOutput: true这样做).

这是我在终端中获得的输出:

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


Done, without errors.

我还想jshint在我第一次运行default任务时运行(以及修改文件时).

任何人都可以了解我的错误吗?

谢谢!

1 个回答
  • watch如果没有找到"观察"的文件,该任务将退出; 按照这个问题.

    为了轻松告诉watch观看与jshint任务相同的文件,我使用Grunt的模板引擎来引用与任务相同Array的文件jshint.

    然后我添加jshint到要运行的并发任务列表中,这样它最初会运行并且当我修改文件时(带watch).

    这是我的工作Gruntfile:

    module.exports = function (grunt) {
        grunt.initConfig({
            concurrent: {
                dev: [
                    'jshint',
                    'watch'
                ],
                options: {
                    logConcurrentOutput: true
                }
            },
            jshint: {
                server: [
                    '**/*.js',
                    '!node_modules/**/*.js'
                ],
                options: {
                    node: true
                }
            },
            watch: {
                files: '<%= jshint.server %>',
                tasks: [
                    'jshint'
                ]
            }
        });
    
        grunt.loadNpmTasks('grunt-concurrent');
        grunt.loadNpmTasks('grunt-contrib-jshint');
        grunt.loadNpmTasks('grunt-contrib-watch');
    
        grunt.registerTask('default', [
            'concurrent'
        ]);
    };
    

    2023-01-30 10:48 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有