Environment:
Project: Smart Campus Entry System (Node.js + Express backend)
Node.js: v22.17.1
TensorFlow.js: @tensorflow/tfjs@4.22.0
face-api: @vladmandic/face-api@1.7.6
OS: Windows 10 (x64)
Using: canvas, fs-extra, multer, node-fetch@2
Problem
After updating to Node.js 22, my backend crashes immediately when requiring @vladmandic/face-api.
The error appears before any code executes, even if I only import the module:
const faceapi = require("@vladmandic/face-api");
Error Log
TypeError: this.util.TextEncoder is not a constructor
at new YO (D:\SmartCampusEntry\backend\node_modules@vladmandic\face-api\dist\face-api.js:14:50947)
at D:\SmartCampusEntry\backend\node_modules@vladmandic\face-api\dist\face-api.js:14:51586
at Object. (D:\SmartCampusEntry\backend\node_modules@vladmandic\face-api\dist\face-api.js:5009:95636)
at Module._compile (node:internal/modules/cjs/loader:1730:14)
I’ve tried
Reinstalled clean (rm -rf node_modules && npm install).
Downgraded face-api from 1.7.10 → 1.7.6 (same issue).
Installed the following TensorFlow JS modules manually:
npm install @tensorflow/tfjs canvas node-fetch@2
Added a global patch:
const { TextEncoder, TextDecoder } = require("util");
global.TextEncoder = TextEncoder;
global.TextDecoder = TextDecoder;