Nous souhaitons déposer des cookies à des fins de mesure d'audience avec Google Analytics. Vous êtes libre d'accepter ou de refuser. En poursuivant votre navigation sur ce site sans exprimer votre choix, vous autorisez la mesure d'audience.
Aujourd'hui, une question à la con. Comme l'indique le titre, j'aimerais pouvoir obtenir le nom du fichier en cours d'exécution dans un script Node.js.
La solution qu'on voit partout et qu'on trouve en 10 secondes sur stack est simplement une des variables module.filename ou plus simplement __filename.
Mais ce n'est pas réellement ce que je souhaite.
Dans les deux cas où j'appelle foo.hello, ça m'affiche le chemin vers foo.js. Or je souhaiterais que ça m'affiche respectivement le chemin de bar.js et bat.js.
Si je passe module.filename en paramètre de la fonction hello, évidemment, ça marche.
Mais j'aimerais ne pas avoir à toucher à bar.js et bat.js.
Dans foo.js, à la place de module.filename, mets-y require.main.filename.
Ca n'a pas l'air de marcher dans mon cas, j'obtiens toujours le chemin vers foo.js avec require.main.filname à la place de module.filename.
Par contre, je n'ai peut-être pas choisi suffisament judicieusement mon exemple. La réalité est plus proche du code ci-dessous et peut-être que ça change tout en fait :
Par contre, je n'ai peut-être pas choisi suffisament judicieusement mon exemple. La réalité est plus proche du code ci-dessous et peut-être que ça change tout en fait :
Oui, effectivement.
En faisant joujou avec l'objet global process, j'en suis venu à
obtenir process.mainModule.children[process.mainModule.children.length-1]['filename'] (au lieu de module.filename. Mais il doit y avoir mieux… Ça me semble toutefois répondre à ton problème.
Vous devez être connecté pour pouvoir poster un message.
Connexion
Pas encore inscrit ?
Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte