每当 esbuild 因源代码错误而无法构建时,如何通过声音通知我?

How can I be notified with a sound whenever esbuild fails to build due to errors in source?

提问人:dllb 提问时间:11/1/2023 最后编辑:dllb 更新时间:11/1/2023 访问量:19

问:

我总是将 esbuild 设置为监视更改并自动重新构建,但是当由于我错过的源代码错误而导致构建失败时,我不会收到通知,除了在开发窗口下最小化的控制台。

我正在搜索几个小时,我很惊讶我找不到任何提到在 esbuild 失败时提醒用户,这不依赖于一直观看控制台并占用宝贵的屏幕空间(单个显示器是不可能的)。

这让我无数次在错误的地方寻找错误,只是在 10 分钟左右后才意识到源代码甚至没有在第一次构建......

因此,我认为仅通过播放 mp3 警告声音来通知是理想的。 这怎么能做到?

我尝试了以下方法:

  1. 我将 package.json 中的构建行更改为: “构建”: “节点构建.js”,

  2. 我创建了一个包含以下内容的构建.js文件:


const { exec } = require('child_process');
const soundPlay = require('sound-play');

function executeBuildCommand() {
  return new Promise((resolve, reject) => {
    const buildCommand = 'esbuild src/main.js --watch --bundle --minify --sourcemap --outdir=dist --target=edge118,firefox118,safari17'; // Replace with your actual build command

    exec(buildCommand, (error, stdout, stderr) => {
      if (error || stderr) {
        reject(error || stderr);
      } else {
        resolve(stdout);
      }
    });
  });
}

async function buildWithNotification() {
  try {
    const buildOutput = await executeBuildCommand();

    // Check if there are any warnings or errors
    if (buildOutput.includes('error') || buildOutput.includes('warning')) {
      const errorMessage = buildOutput.includes('error') ? 'Build failed with errors' : 'Build completed with warnings';
      console.error(errorMessage);

      // Play an alert sound
      soundPlay.play('alert.mp3', (err) => {
        if (err) {
          console.error('Error playing sound:', err);
        }
      });
    } else {
      console.log('Build completed successfully');
    }
  } catch (error) {
    console.error('esbuild error:', error);

    // Play an alert sound
    soundPlay.play('alert.mp3', (err) => {
      if (err) {
        console.error('Error playing sound:', err);
      }
    });
  }
}

buildWithNotification().catch((err) => {
  console.error('An unexpected error occurred:', err);
});

  1. 我用以下命令运行 esbuild:npm run build。

但这行不通。

节点 .js npm 错误处理 esbuild

评论


答: 暂无答案