Я создаю приложение для сегментации тела, используя модель tensorflow bodypix. В браузере работает нормально. Я использую webpack для использования его модулей (см. Ниже)
import * as wasm from "@tensorflow/tfjs-backend-wasm";
import * as tf from "@tensorflow/tfjs-core";
import * as bodyPix from "@tensorflow-models/body-pix";
wasm.setWasmPaths("./wasm/");
tf.setBackend("wasm").then(() => {
//some simple vanilla js code
});
//some more vanilla js code...
Он отлично работает в Chrome и выдает ожидаемый результат после запуска npx webpack
.
Однако, когда он запускается с помощью электрона, просто создавая основной электронный файл, он не выводит ничего, кроме пустого белого экрана со следующей ошибкой в консоли:
Uncaught TypeError: this.util.TextEncoder is not a constructor
at new <anonymous> (main.js:2)
строка, на которую он указывает, взята из минифицированного кода, который выглядит так:
...SOME_CODE...&&Me().setPlatform("node",new class{
constructor(){this.util=n(758),this.textEncoder=new this.util.TextEncoder}...SOME_MORE_CODE...
Я думал, что электрон - это просто хром без верхних планок, но это кажется неправильным. может кто-нибудь помочь мне здесь, я использую следующие версии -
nodejs v12.16.3, electronic11.1.1, tfjs2.8.2
см. снимок экрана хрома и электронно-
В ХРОМЕ (нажмите, чтобы увеличить)
................................................
В ЭЛЕКТРОНЕ (нажмите, чтобы увеличить)