235 votes

Pourquoi __dirname n’est-il pas défini dans node REPL ?

Dans le manuel du nœud, je vois que je peux obtenir le répertoire d’un fichier avec `` , mais à partir du REPL, cela semble être indéfini. Est-ce un malentendu de ma part ou où est l’erreur?

232voto

qiao Points 7444

`` est défini uniquement dans les scripts. Il n’est pas disponible dans REPL.

essayez de créer un script ``

et exécutez-le:

vous verrez `` imprimé.

Ajout d’une explication de fond: signifie « Le répertoire de ce script ». Dans REPL, vous n’avez pas de script. Par conséquent, n’aurait pas de signification réelle.

158voto

c24w Points 1254

En vous appuyant sur les réponses existantes ici, vous pouvez définir ceci dans votre REPL :

ou:

Si aucun segment n’est passé, retourne le chemin d’accès absolu du répertoire de travail actuel.


Ou les alternatives de @Jthorpe:

65voto

t-reksio Points 61

Dans ES6, utilisez:

également disponible lorsque le nœud est appelé avec ``

8voto

jeremywoertink Points 1333

Comme @qiao dit, vous ne pouvez pas utiliser dans le nœud repl. Toutefois, si vous avez besoin de cette valeur dans la console, vous pouvez utiliser ou . Bien que, vous donnera juste un « . » donc, probablement pas si utile. Assurez-vous de `` .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X