150 votes

Déterminer le répertoire de travail de la ligne de commande lors de l'exécution du nœud bin script.

Je suis en train de créer une interface de ligne de commande pour les nœuds. Elle est installée globalement et utilise un fichier bin pour s'exécuter.

J'ai l'intention d'ouvrir une fenêtre de commande dans le répertoire racine des fichiers sur lesquels je travaille et d'exécuter la commande, mais je n'ai pas réussi à déterminer le répertoire de travail actuel comme suit process.cwd() renvoie le répertoire du paquet de nœuds. J'ai d'abord supposé que puisque le code est exécuté en utilisant un fichier batch comme enveloppe (c'est ainsi que les fichiers bin peuvent s'exécuter sans node au début), alors c'est impossible, mais coffee-script y parvient. J'ai jeté un coup d'oeil à la source de coffee-script mais je n'ai pas pu la suivre (pas assez expérimenté).

Pour le tester par vous-même, créez un paquet avec ce fichier package.json :

{
  "name": "test-package",
  "version": "1.0.0",
  "bin": {
    "test-package":  "./bin/test-package"
  },
  "main": "/lib/test"
}

ce fichier test-package dans bin :

#!/usr/bin/env node

var path = require('path');
var fs   = require('fs');
var lib  = path.join(path.dirname(fs.realpathSync(__filename)), '../lib');

require(lib + '/test');

Quelqu'un peut-il m'éclairer à ce sujet ?

et ensuite essayer d'obtenir le répertoire de la ligne de commande dans lib/test.

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