提问人:dllb 提问时间:11/1/2023 最后编辑:dllb 更新时间:11/1/2023 访问量:19
每当 esbuild 因源代码错误而无法构建时,如何通过声音通知我?
How can I be notified with a sound whenever esbuild fails to build due to errors in source?
问:
我总是将 esbuild 设置为监视更改并自动重新构建,但是当由于我错过的源代码错误而导致构建失败时,我不会收到通知,除了在开发窗口下最小化的控制台。
我正在搜索几个小时,我很惊讶我找不到任何提到在 esbuild 失败时提醒用户,这不依赖于一直观看控制台并占用宝贵的屏幕空间(单个显示器是不可能的)。
这让我无数次在错误的地方寻找错误,只是在 10 分钟左右后才意识到源代码甚至没有在第一次构建......
因此,我认为仅通过播放 mp3 警告声音来通知是理想的。 这怎么能做到?
我尝试了以下方法:
我将 package.json 中的构建行更改为: “构建”: “节点构建.js”,
我创建了一个包含以下内容的构建.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);
});
- 我用以下命令运行 esbuild:npm run build。
但这行不通。
答: 暂无答案
评论