Lokaler Schluck nicht gefunden (Versuchen Sie es mit: npm install gulp)

83

Ich habe ein Modul ( webapp-module-storage) erstellt, das die folgenden Definitionen hat:

package.json

{
  "dependencies": {
    ...
  },
  "devDependencies": {
    "gulp": "^3.9.1",
    ...
  },
  "name": "webapp-module-storage",
  "scripts": {
    "postinstall": "gulp build",
    "test": "gulp test"
  }
}

Ich dachte, ich kann mein Modul in einem anderen Modul verwenden, wenn ich es installiere mit:

  • npm install github:myorg/webapp-module-storage#master

Bei der Installation meines Moduls wird jedoch folgende Fehlermeldung angezeigt:

Lokaler Schluck nicht gefunden

Versuchen Sie es mit: npm install gulp

Bildschirmfoto

Geben Sie hier die Bildbeschreibung ein

Mein Verständnis ist, dass dies gulpzusammen mit meinem Modul geliefert wird, weil ich es deklariert habe, devDependenciesaber es sieht so aus, als ob mein npm postinstallSkript es nicht finden kann gulp.

Vermisse ich etwas

Benny Neugebauer
quelle
1
Im Ordnerprojekt npm i gulp -Dausführen. Hinweis: gulp4 kann in alten Projekten Probleme verursachen. Verwenden Sie für die Installation einer bestimmten Version Folgendes : npm i [email protected] -D(ps -Dfür devDependencies)
Guilherme Nascimento

Antworten:

181

Versuchen Sie, npm link gulpin Ihrem Anwendungsverzeichnis auszuführen (um einen lokalen Link zum global installierten Gulp-Modul zu erstellen).

Fab Fürste
quelle
Laravel / Homestead User hier. Der obige Befehl hat bei mir nicht funktioniert, jedoch npm link gulp --no-bin-linksfunktioniert.
Lpgfmk
7
Zur Verdeutlichung wird npm link [module]am aktuellen Pfad ein Symlink aus dem globalen Installationsordner von [module] zu ./node_modules/[module] erstellt (ohne npm linkNamensverknüpfungspakete, siehe Manpage )
techturbulence
21

Versuchen Sie zuerst, Ihre Abhängigkeiten zu installieren:

npm install

Wenn dies immer noch nicht funktioniert, installieren Sie gulp global:

npm install -g gulp

Wenn Sie Probleme bei der Installation haben. Geben Sie sudo vor npm .

Falls Sie weitere Informationen darüber benötigen, warum Sie global und lokal schlucken müssen, lesen Sie diese Antwort

Sebastian SALAMANCA
quelle
1
Gulp ist global installiert:[17:51:24] CLI version 1.2.1
Benny Neugebauer
Eigentlich nicht in der Anwendung mit meinem Modul. Aber ich dachte, dass es gulpaus dem Pfad meines Moduls oder meines global installierten Schluckes greifen würde .
Benny Neugebauer
1
Es scheint, als würde nach dem lokalen Schluck in Ihrem Projekt gesucht. Wie wäre es mit einer lokalen Installation in Ihrem Projekt?
Sebastian SALAMANCA
13

Ich habe alle genannten Lösungen ausprobiert. Am Ende konnte ich das Problem lösen, indem ich feststellte, dass die Datei gulpfile.js an dem Ort fehlte, an dem ich den Schluck verwendete. Nachdem ich die Datei gulpfile.js in dem Ordner abgelegt hatte, in dem ich gulp ausgeführt hatte, funktionierte es für mich.

Kapil Bhagchandani
quelle
0

npm link gulp --no-bin-links
Führen Sie dies aus

wo npm link gulperstellt eine lokale Verbindung zu global installierten schluck Modul und --no-bin-linksArgument wird von der Erstellung Symlinks für alle Binärdateien verhindern npm das Paket enthalten könnten.

Sie können Symlinks nicht in einen synchronisierten Ordner auf der Windows-Freigabe übersetzen, daher benötigen Sie '--no-bin-links', um dies zu umgehen.

Verwenden Sie es für jedes Dateisystem, das keine symbolischen Links unterstützt.

Symlinks oder symbolische Links sind „virtuelle“ Dateien oder Ordner, die auf eine physische Datei oder einen Ordner verweisen, die sich an einer anderen Stelle befinden, und sind eine wichtige Funktion, die in vielen Betriebssystemen, einschließlich Linux und Windows, integriert ist.

Parikshit Singh
quelle
Hallo! Während dieser Code die Frage lösen kann, einschließlich einer Erklärung, wie und warum dies das Problem löst, würde dies wirklich dazu beitragen, die Qualität Ihres Beitrags zu verbessern, und wahrscheinlich zu mehr Up-Votes führen. Denken Sie daran, dass Sie in Zukunft die Frage für die Leser beantworten, nicht nur für die Person, die jetzt fragt. Bitte bearbeiten Sie Ihre Antwort, um Erklärungen hinzuzufügen und anzugeben, welche Einschränkungen und Annahmen gelten.
Brian
Vielen Dank an @Brain für den Hinweis :). Ich habe es bearbeitet.
Parikshit Singh
0

npm link gulp --force

Die Verwendung dieses Befehls hat bei mir gut funktioniert.

Agostinho de Pina Ramos
quelle