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.