首页 > 解决方案 > 如何让 Grunt 捕获 npm build 任务错误并导致任务失败?

问题描述

您好,我们为我们的项目配置了一个 Gruntfile.js,它包含以下信息(出于演示目的,我删除了许多其他不相关的内容)。

// ...

// Define the configuration for all the tasks
grunt.initConfig({

    // Project settings
    project: appConfig,


    concurrent: {
        options: {
            stderr: true,
            stdout: true,
            failOnError: true
        },

        webpackDevImagmin: ['run:webpackDev'],
    },


    run: {
        options: {
            stderr: true,
            stdout: true,
            failOnError: true
        },
        webpackDev: {
            cmd: 'npm',
            args: [
                'run',
                'build:dev'
            ],
            options: {
                stderr: true,
                stdout: true,
                failOnError: true
            }
        }
    },


});

grunt.registerTask('buildInternal:app', [
    'concurrent:webpackDevImagmin',
]);

在我们的项目中,我们故意删除了一些文件以使 npm 任务失败。但是当我们执行 grunt 命令时,我们看到了类似

ERROR in ./app/public/modules/PartnershipsCtrl.js
    Module not found: Error: Cannot resolve module 'our/services/OurResource' in /code/our/app/public/modules/partnerships/controllers
    @ ./app/public/modules/partnerships/controllers/PartnershipsCtrl.js 9:4-53

Done, without errors.

我的理论是 npm 错误不会为任务返回 false,我的问题是如何让它在错误时返回 false 并使 grunt Task 失败?

标签: npmgruntjs

解决方案


推荐阅读