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
Mein Verständnis ist, dass dies gulp
zusammen mit meinem Modul geliefert wird, weil ich es deklariert habe, devDependencies
aber es sieht so aus, als ob mein npm postinstall
Skript es nicht finden kann gulp
.
Vermisse ich etwas
npm
gulp
npm-install
post-install
Benny Neugebauer
quelle
quelle
npm i gulp -D
ausfü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-D
für devDependencies)Antworten:
Versuchen Sie,
npm link gulp
in Ihrem Anwendungsverzeichnis auszuführen (um einen lokalen Link zum global installierten Gulp-Modul zu erstellen).quelle
npm link gulp --no-bin-links
funktioniert.npm link [module]
am aktuellen Pfad ein Symlink aus dem globalen Installationsordner von [module] zu ./node_modules/[module] erstellt (ohnenpm link
Namensverknüpfungspakete, siehe Manpage )Versuchen Sie zuerst, Ihre Abhängigkeiten zu installieren:
Wenn dies immer noch nicht funktioniert, installieren Sie gulp global:
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
quelle
[17:51:24] CLI version 1.2.1
gulp
aus dem Pfad meines Moduls oder meines global installierten Schluckes greifen würde .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.
quelle
npm link gulp --no-bin-links
Führen Sie dies aus
wo
npm link gulp
erstellt eine lokale Verbindung zu global installierten schluck Modul und--no-bin-links
Argument 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.
quelle
npm link gulp --force
Die Verwendung dieses Befehls hat bei mir gut funktioniert.
quelle