Hur man fångar @rollup/plugin-typescript-fel


Jag använder api rollup.watch(options) för att bygga TypeScript.

Som standard kommer @rollup/plugin-typescript att skriva ut ett felmeddelande i konsolen om det finns ett kompileringsfel, men inget filnamn och radnummer skrivs ut, och watcher.on('event') utlöser inte errevenemanget.

Jag upptäckte att alternativet noEmitOnError: true utlöser felhändelsen i watcher.on('event'), men bara första gången, andra gången kastar det ett fel och avslutas.

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);
    }
});

version

  • rollup: 2.46.0
  • @rollup/plugin-typescript: 8.2.1

Hur fångar jag felet på ett säkert sätt?

Relaterade artiklar