Я пытаюсь использовать AudioWorklet в моем электронном приложении для измерения и т. Д., Который отлично работает при выполнении в режиме разработки, где рабочий сервлет обслуживается сервером экспресс-разработки, таким как http://localhost:3000/processor.js. Однако, если я пытаюсь запуститьприложение в режиме prod файл обслуживается локально, как file: //tmp/etc/etc/build/processor.js, и в консоли разработчика я даже вижу, что файл правильно просматривается, но я получаю это сообщение об ошибке:
Uncaught (в обещании) DOMException: пользователь прервал запрос.
Я видел, что у кого-то еще была похожая проблема до здесь , но, к сожалению, моя репутация в отношении переполнения стеканедостаточно высоко, чтобы комментировать напрямую.Предложение там изменить тип mime на application / javascript или text / javascript звучит хорошо, но я понятия не имею, как заставить электрон использовать определенный тип mime для определенного файла.Кроме того, в консоли разработчика на вкладке сети кажется, что хром фактически уже использует файл javascript для моего процессора. Js.
Я уже пытался загрузить рабочий лист с помощью специального протокола, подобного этому
protocol.registerStandardSchemes(['worklet']);
app.on('ready', () => {
protocol.registerHttpProtocol('worklet', (req, cb) => {
fs.readFile(req.url.replace('worklet://', ''), (err, data) => {
cb({ mimeType: 'text/javascript', data });
});
});
});
и затем при добавлении рабочего листа
await ctx.audioWorklet.addModule('worklet://processor.js');
к сожалению, это заканчивается только этими ошибками, за которыми следует первая ошибка
GET worklet: //processor.js/ 0 ()
Uncaught Error: предоставленная вами ошибка не содержит трассировки стека.
...