Publié le 29 octobre 2025 à 06h13. Des développeurs rencontrant des difficultés lors du déploiement d’applications Express sur Vercel se heurtent à une erreur liée à la compatibilité entre les modules CommonJS et ESM, mais des solutions existent pour résoudre ce problème.
- L’erreur « ERR_REQUIRE_ESM » survient lorsque le package
jose(ESM) est importé par@better-auth/coreen utilisant la syntaxerequire()(CommonJS). - La conversion du projet en modules ES, en ajoutant
"type": "module"au fichierpackage.json, est la solution recommandée. - Vérifier la configuration de
better-authet définir le runtime Node.js sur Vercel sont des alternatives possibles.
Plusieurs développeurs ont récemment signalé une erreur lors du déploiement d’applications Express sur la plateforme Vercel. L’erreur, identifiée par le code « ERR_REQUIRE_ESM », indique un conflit entre les modules JavaScript CommonJS et ESM (ECMAScript Modules). Plus précisément, le problème se pose lorsque le package jose, qui utilise le format ESM, est requis par le package @better-auth/core en utilisant la syntaxe require(), propre à CommonJS.
Pawlean, un membre de la communauté Vercel, a expliqué que cette incompatibilité est la cause principale de l’erreur. Elle a proposé plusieurs pistes pour la résoudre. La solution privilégiée consiste à convertir l’ensemble du projet en modules ES. Cela implique d’ajouter la ligne "type": "module" au fichier package.json, de remplacer toutes les instructions require() par des instructions import, et de s’assurer que les extensions de fichiers .js sont incluses dans les importations.
En complément, Pawlean suggère de vérifier que la version de better-auth utilisée est la plus récente et de consulter la documentation de Vercel pour d’éventuelles notes de déploiement spécifiques. Enfin, il est possible de définir explicitement le runtime Node.js sur Vercel, en particulier lors de l’utilisation de fonctions sans serveur, en utilisant une configuration comme celle-ci :
{
"functions": {
"app.js": {
"runtime": "nodejs18.x"
}
}
}
Pour ceux qui utilisent Next.js avec App Router, l’utilisation de Server Actions ou Server Components, qui prennent en charge les modules ES, peut également être une solution.
Vercel propose également une documentation dédiée au déploiement d’applications Express sur sa plateforme. De plus, les développeurs peuvent solliciter l’aide de v0 pour obtenir des suggestions personnalisées en fonction de la configuration de leur projet.
Un utilisateur, identifié par le pseudonyme « système », a remercié Pawlean pour son aide et son soutien.
À ne pas manquer
