Bonjour à tous.
Ce message s'adresse à toute personne rencontrant cette erreur lors du lancement d'un serveur
Node.js sur CraftServ : TypeError: Cannot read properties of undefined (reading 'fileExists')
Pourquoi cette erreur ?
Le problème vient du startup command de l'egg Pelican utilisé par CraftServ. La condition suivante est
cassée : if [[ "${MAIN_FILE}" == "*.js" ]]
En bash, cette syntaxe ne fonctionne pas correctement, ce qui fait que le panel utilise toujours tsnode pour lancer votre fichier, même si c'est un fichier .js classique. Or le ts-node global installé sur le
serveur est incompatible avec les versions récentes de Node.js (v20+).
Solution (côté utilisateur) :
Allez dans l'onglet Files de votre serveur
2. Ouvrez votre package.json et ajoutez ces deux dépendances :
"ts-node": "^10.9.2",
"typescript": "^5.4.5"
3. Créez un fichier tsconfig.json à la racine avec ce contenu :
{
"compilerOptions": {
"allowJs": true,
"esModuleInterop": true
},
"ts-node": {
"esm": true,
"experimentalSpecifierResolution": "node"
}
4. Redémarrez votre serveur.
Fait par ARN_Zelef & tr4nsmission