Nie znaleziono lokalnego gulp (spróbuj uruchomić: npm install gulp)


84

Stworzyłem moduł ( webapp-module-storage), który ma następujące definicje:

package.json

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

Pomyślałem, że mogę użyć mojego modułu w innym module podczas instalacji go z:

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

Jednak po zainstalowaniu modułu pojawia się ten błąd:

Nie znaleziono lokalnego łyku

Spróbuj uruchomić: npm install gulp

Zrzut ekranu

wprowadź opis obrazu tutaj

Rozumiem, że gulpjest to dostarczane razem z moim modułem, ponieważ zadeklarowałem to w programie, devDependenciesale wygląda na to, że mój npm postinstallskrypt nie może go znaleźć gulp.

Czy coś mi brakuje?



1
Wykonaj npm i gulp -Dw folderze projektu. Uwaga: gulp4 może powodować problemy w starych projektach, do instalacji określonej wersji użyj w ten sposób: npm i gulp@3.9.1 -D(ps -Dfor devDependencies)
Guilherme Nascimento

Odpowiedzi:


182

Spróbuj uruchomić npm link gulpw katalogu aplikacji (aby utworzyć lokalne łącze do globalnie zainstalowanego modułu Gulp).


Laravel / homestead user tutaj. Powyższe polecenie nie działa dla mnie, jednak npm link gulp --no-bin-linkszadziałało.
Lpgfmk

7
Aby wyjaśnić, npm link [module]tworzy dowiązanie symboliczne z globalnego folderu instalacyjnego modułu [moduł] do ./node_modules/[module] w bieżącej ścieżce (bez npm linkpakietów z linkami nazw, patrz strona
podręcznika

22

Spróbuj najpierw zainstalować swoje zależności:

npm install

Jeśli nadal nie działa, zainstaluj gulp globalnie:

npm install -g gulp

jeśli napotkasz problemy z instalacją. wpisz sudo przed npm .

Jeśli potrzebujesz więcej informacji o tym, dlaczego potrzebujesz łyka na całym świecie i lokalnie przeczytaj odpowiedź


1
Gulp jest instalowany na całym świecie:[17:51:24] CLI version 1.2.1
Benny Neugebauer

Właściwie nie w aplikacji używającej mojego modułu. Ale myślałem, że złapie mnie gulpze ścieżki mojego modułu lub mojego globalnie zainstalowanego łyka.
Benny Neugebauer

1
Wygląda na to, że szuka lokalnego łyku w twoim projekcie. Co powiesz na zainstalowanie go lokalnie, w swoim projekcie?
Sebastian SALAMANCA

13

Wypróbowałem wszystkie wymienione rozwiązania. W końcu udało mi się rozwiązać problem, zdając sobie sprawę, że brakuje pliku gulpfile.js w lokalizacji , w której używałem gulp. Po umieszczeniu gulpfile.js w folderze, z którego wykonywałem gulp, zadziałało.


0

npm link gulp --no-bin-links
Uruchomić to

gdzie npm link gulptworzy lokalne łącze do globalnie zainstalowanego modułu gulp i --no-bin-linksargumentu, który uniemożliwi npm tworzenie dowiązań symbolicznych do jakichkolwiek plików binarnych, które pakiet może zawierać.

Nie możesz tłumaczyć linków symbolicznych do zsynchronizowanego folderu w udziale Windows, więc będziesz potrzebować '--no-bin-links', aby go obejść.

Użyj go dla dowolnego systemu plików, który nie obsługuje dowiązań symbolicznych.

Dowiązania symboliczne lub łącza symboliczne to „wirtualne” pliki lub foldery, które odwołują się do fizycznego pliku lub folderu znajdującego się w innym miejscu i są ważną funkcją wbudowaną w wiele systemów operacyjnych, w tym Linux i Windows.


Cześć! Chociaż ten kod może rozwiązać problem, w tym wyjaśnienie, jak i dlaczego to rozwiązuje problem, naprawdę pomogłoby poprawić jakość twojego posta i prawdopodobnie zaowocowałoby większą liczbą pozytywnych głosów. Pamiętaj, że odpowiadasz na pytanie do czytelników w przyszłości, a nie tylko osoba, która zapyta teraz. Proszę edytować swoje odpowiedzi, aby dodać wyjaśnień i dać wskazówkę co zastosować ograniczenia i założenia.
Brian

Dziękuję @Brain za wskazanie :). Edytowałem to.
Parikshit Singh

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.