如何捕获 @rollup/plugin-typescript 错误

rob*_*ode 5 rollup typescript rollupjs

我使用 apirollup.watch(options)来构建打字稿。

默认情况下@rollup/plugin-typescript如果出现编译错误会在控制台打印错误信息,但不会打印文件名和行号,并且watcher.on('event')不会触发错误事件。

我发现该选项noEmitOnError: true触发了错误事件watcher.on('event'),但只有第一次,第二次就抛出错误并退出。

import rollupTypescript from '@rollup/plugin-typescript';

let options: rollup.RollupWatchOptions = {
    ...
    plugins: [
        rollupTypescript({
            noEmitOnError: true,
            tsconfig: path.join(__dirname, `tsconfig.json`),
        }),
    ],
};

let watcher = rollup.watch(options);

watcher.on('event', async (evt) => {
    if (evt.code === 'ERROR') {
        console.log(evt);
    }
});
Run Code Online (Sandbox Code Playgroud)

版本

  • 汇总:2.46.0
  • @rollup/插件打字稿:8.2.1

我如何安全地捕获错误?