2017-11-06 3 views
2

Ich habe ein später zu veröffentlichendes Open Source-Projekt mit Node als CLI-Tool entwickelt. Die CLI selbst funktioniert gut Ich muss nur testen, ob es funktioniert, während in einem anderen Projekt, so dass ich die Projekte global npm install -g ohne Fehler installiert habe, aber für das Leben von mir kann ich nicht die CLI verwenden.Kann mein eigenes npm-Paket nicht installieren

bekomme ich folgende Fehlermeldung:

node command not working

Das Seltsame ist, dass das Verzeichnis und die Datei im globalen npm Ordner vorhanden ist:

directory exists

Dies ist das Projekt package.json :

package.json

Ich verstehe nicht, wie ein npm/node CLI funktioniert? Was ich vermisse?

EDIT 1:

Das ist mein index.js Datei:

index.js file

Und das ist die commander.js Datei:
command.js file

EDIT 2:

Nachdem ich ein Testprojekt erstellt hatte, wie @AngYC vorgeschlagen hatte, konnte ich den Test cli erfolgreich verwenden, während ich den Unterschied untersuchte, den ich gefunden habe. Innerhalb C:\Users\Ivan\AppData\Roaming\npm sind die .cmd beiden Projekte ganz anders aus:

enter image description here

EDIT 3 (Lösung):

Nach Hantieren fand ich heraus, dass die Datei, die wirklich die shebang benötigt (#!/usr/bin/env node) war nur index.js Datei und nicht die commander.js eins. Das Entfernen des Shebang in dieser Datei löste das Problem

+0

** Bearbeiten: ** Sie müssen möglicherweise Ihre PATH-Umgebungsvariable https://stackoverflow.com/questions/29955217/global-npm-package-installed-but-command-not-found – AngYC

+0

Ich habe bereits npm im Pfad so das nicht, aber trotzdem versucht, immer noch das gleiche:/ –

+0

Ich weiß, es ist wahrscheinlich nicht das, aber vielleicht versuchen './index.js' anstelle von' index.js' für Ihre 'bin' Zuordnung? – nem035

Antwort

1

Sie können versuchen, link Ihr lokales Paket zu Ihrer globalen ausführbaren Liste.

https://docs.npmjs.com/cli/link

Alles, was Sie tun müssen, ist npm link im Ordner laufen bekommen Sie Ihr Werkzeug und es sollte den Befehl global zur Verfügung stellen.

+0

getestet 'npm Link', es tut ** nicht (bearbeitet) ** Änderung das Ergebnis –

+0

So funktionierte es ? Wenn dies der Fall ist, sollten Sie dies als die richtige Antwort markieren. – Dominik

+0

OMG Entschuldigung es als Tippfehler ** es tut nicht ** –

0

Versuchen Sie, cli run npm rm -g cli oder sudo npm rm -g cli zu deinstallieren. Dann führen Sie aus: npm install cli -g

Wenn das Problem weiterhin besteht, möchten Sie möglicherweise Sie Npm-Paket global entfernen, wahrscheinlich könnte es einige Konflikte Dinge laufen.

Geben Sie Folgendes ein: %appdata% (entweder im Explorer, Startaufforderung oder Startmenü).

Sie können einfach alle weltweit installierten npm Pakete entfernen, indem Sie den Inhalt zu löschen:

C:\Users\username\AppData\Roaming\npm

Dann könnten Sie auch alle Ihre Cache laufen npm cache clear oder npm cache clear --force wie es der Fall sein könnte löschen möchten.

Dann installieren Sie alle Ihre Pakete neu, die global installiert wurden.

Wenn das Problem weiterhin bestehen, dies überprüfen:

Wenn Sie npm root -g laufen, es ergibt C:\Users\<username>\AppData\Roaming\npm\node_modules oder sogar sollten Sie Ihren Weg überprüfen vielleicht die ausführbaren Programmdateien und .cmd Dateien in C:\Users\<username>\AppData\Roaming\npm statt am Ende von C:\Users\<username>\AppData\Roaming\npm\node_modules, werden Sie müssen diesen Pfad zu PATH env hinzufügen. Variable.

Ich hoffe, dies löst Ihr Problem.

Verwandte Themen