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?

Benny Neugebauer
źródło
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 [email protected] -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).

Fab Fuerste
źródło
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ź

Sebastian SALAMANCA
źródło
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.

Kapil Bhagchandani
źródł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.

Parikshit Singh
źródło
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
0

npm link gulp --force

Użycie tego polecenia działało dobrze dla mnie.

Agostinho de Pina Ramos
źródło