Skip to content

webpack 进阶用法之 构建异常和中断处理 #25

@ravencrown

Description

@ravencrown

构建异常和中断处理

如何判断构建是否成功

  1. 在 CI/CD 的pipeline 或者发布系统需要知道当前的构建状态
  2. 每次构建完后输入 echo $? 获取错误码

webpack4 之前的版本构建失败不会抛出错误码(error code)

nodejs 中的 process.exit 规范

  • 0 表示成功完成,回调函数中,err 为null
  • 非 0 表示执行失败,回调函数中,err不为null,err.code 就是传给 exit 的数字

如何主动捕获并处理构建错误

  1. compiler 在每次构建结束之后会触发 done 这个hook
  2. process.exit 主动处理构建报错
// webpack 配置 plugin
plugins: [
    function() {
        this.hooks.done.tap('done', (stats) => {
            if (stats.compilation.errors && stats.compilation.errors.length && process.argv.indexOf('--watch') == -1)
            {
                console.log('build error');
                process.exit(1);
            }
        })
    }    
]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions