błędy instalacji npm z błędem: ENOENT, chmod

Próbuję globalnie zainstalować moduł npm, który właśnie opublikowałem. Za każdym razem, gdy próbuję zainstalować, albo z npm lub folderu, dostaję ten błąd.

npm ERR! Error: ENOENT, chmod '/usr/local/lib/node_modules/takeapeek/lib/cmd.js'
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <[email protected]>

npm ERR! System Linux 3.8.0-19-generic
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "takeapeek"
npm ERR! cwd /home/giodamlio
npm ERR! node -v v0.10.6
npm ERR! npm -v 1.3.6
npm ERR! path /usr/local/lib/node_modules/takeapeek/lib/cmd.js
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/giodamlio/npm-debug.log
npm ERR! not ok code 0

Używam sudo i trzykrotnie sprawdziłem wszystko w pakiecie wszystko powinno działać. Poszperałem trochę i zobaczyłem kilka podobnych przypadków, z których żaden nie został rozwiązany. Oto czego próbowałem.

  • Upgrade npm (sudo npm install -g npm)
  • Wyczyść globalną pamięć podręczną npm (sudo npm cache clear)
  • Wyczyść użytkownika npm cache (npm cache clear)

Zauważyłem, że błąd miał związek z plikiem, który linkuję do ścieżki, szczególnie gdy npm próbował zrobić chmod. To nie powinno być problemem, mój lib/cli.js ma normalne uprawnienia, a npm ma uprawnienia superużytkownika podczas tej instalacji.

Po przekopaniu się przez npm docs znalazłem opcję, która powstrzyma npm od tworzenia linków binowych (--no-bin-links), kiedy próbowałem zainstalować z nim, działało dobrze.

Więc o co chodzi? Czy to jakieś dziwne frędzle case bug , który nie ma jeszcze rozwiązania?

Edit: dla odniesienia, tutaj jest moduł, który przesłałem

Author: mikemaccana, 2013-08-01

24 answers

Ok wygląda na to, że NPM używa twojego .gitignore jako bazy dla pliku .npmignore, a tym samym ignoruje /lib. Jeśli dodasz pusty plik .npmignore do katalogu głównego aplikacji, wszystko powinno działać.

[edytuj] - więcej informacji na temat tego zachowania tutaj: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package

 102
Author: badsyntax,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-24 15:51:07

Napotkałem podobny problem,

npm cache clean
Rozwiązałem to.
 95
Author: Genjuro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-03 15:27:46

Ten problem jakoś pojawił się dla mnie na Macu, gdy próbowałem uruchomić npm install -g bower. To dawało mi wiele błędów za to, że nie mogłem znaleźć rzeczy takich jak graceful-fs. Nie jestem pewien, jak zainstalowałem npm pierwotnie, ale wygląda na to, że może spadł z node używając homebrew. I first ran

brew uninstall node

To usunęło zarówno node jak i npm z mojej ścieżki. Stamtąd właśnie zainstalowałem go ponownie

brew install node

Po jej zakończeniu miałem node i npm na swojej drodze i byłem w stanie run

rm -rf ~/.npm
npm install -g bower

Następnie zainstalowano bower pomyślnie.

Aktualizacja formuł brew i aktualizacja instalacji nie wydaje mi się działać, nie jestem pewien dlaczego. Usunięcie folderu .npm było czymś, co działało na innych ludzi, a ja próbowałem tego bez powodzenia. Tym razem na wszelki wypadek. Zauważ również, że żaden z poniższych problemów nie rozwiązał dla mnie problemu, chociaż dla innych zrobił to:

npm cache clean
sudo npm cache clean
 9
Author: user1978019,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-09 23:52:44

Dostałem ten błąd przy instalacji npm i dodawaniu .npmignore go nie rozwiązał.

Error: ENOENT, stat 'C:\Users\My-UserName\AppData\Roaming\npm"

Próbowałem wejść do wspomnianego folderu i nie istniał. Błąd został naprawiony podczas tworzenia i folder npm w folderze Roaming.

To jest na Windows 8.1

 9
Author: Vijay Vepakomma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-15 23:08:50

Miałem ten sam problem i właśnie znalazłem obsługę, o której tu nie wspomniano. Chociaż ja bym się przyczynił do społeczności:

npm install -g myapp nie kopiowano katalogu bin. Znalazłem to, ponieważ nie włączyłem go w files w moim package.json

"files": [
  "lib",
  "bin" // this was missing
]
 4
Author: dthree,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-11 00:26:41

Otrzymałem podobny komunikat o błędzie podczas próby npm install kilku zależności. Okazuje się, że niektóre z nich nie instalują się na Debianie/Ubuntu, ponieważ oczekują, że /usr/bin/node będzie wykonywalnym węzłem. Aby naprawić, musisz zrobić

sudo ln -s nodejs /usr/bin/node 

Albo jeszcze lepiej,

sudo apt-get install nodejs-legacy

Więcej informacji: https://stackoverflow.com/a/21171188/7581

 3
Author: itsadok,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:23

Otrzymywałem podobny błąd na npm install na lokalnej instalacji:

npm ERR! enoent ENOENT: no such file or directory, stat '[path/to/local/installation]/node_modules/grunt-contrib-jst'

Nie jestem pewien, co było przyczyną błędu, ale niedawno zainstalowałem kilka nowych modułów node lokalnie, zaktualizowałem node za pomocą homebrew i uruchomiłem 'npm update-g'.

Jedynym sposobem na rozwiązanie problemu było całkowite usunięcie lokalnego katalogu node_modules i ponowne uruchomienie npm install:

cd [path/to/local/installation]
npm rm -rdf node_modules
npm install
 3
Author: g.carey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-31 00:40:45

Myślę, że Twój skompilowany skrypt coffee brakuje w opublikowanym pakiecie npm. Spróbuj napisać polecenie prepublish .

 2
Author: leeway,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-01 23:34:59

W moim przypadku (multiple code ENOENT errno 34) problem polegał na dostępie do katalogu ~/.npm/. Wewnątrz było kilka subdirów posiadających prawa root:root, które powodowały problemy podczas uruchamiania komend jako zwykły użytkownik (bez sudo). Zmieniłem więc własność wszystkich subdirów i plików w katalogu ~/.npm/ na mojego lokalnego użytkownika i grupę. To zadziałało na moim Ubuntu(na Macu też powinno działać).

$ sudo chown yourusername.yourgroupname ~/.npm/ -R
Powinieneś znać swoją nazwę użytkownika, prawda? If no then run $ whoami and substitute your group name with to też tak:
$ sudo chown johnb.johnb ~/.npm/ -R

EDIT:

Przypadek testowy :

Z mojego lokalnego konta /home/johnb zainstalowałem globalnie jakiś generator dla yeoman, tak:

$ sudo npm install -g generator-laravel

Problem natury :

Powyższe działanie spowodowało zainstalowanie pewnych zależności wewnątrz ~/.npm/ katalogu, posiadających root:root własność (z powodu sudo ...). Ewidentnie npm nie uruchamia się jako użytkownik lokalny (lub zmienia własność subdirów zależności później) podczas wyciągania zależności i ich zapisywania do lokalnego subdir użytkownika ~/.npm/. Tak długo, jak npm byłby tak nieostrożny wobec fundamentalnych problemów związanych z bezpieczeństwem systemu plików Uniksa, problem pojawiałby się ponownie.

Rozwiązanie :

  1. Continuosly sprawdź, czy ~/.npm/ zawiera subdiry z prawami własności (i/lub uprawnieniami) innymi niż Twoje lokalne konto użytkownika, zwłaszcza gdy instalujesz lub aktualizujesz coś za pomocą sodo (root). Jeśli tak, zmień własność wewnątrz ~/.npm/ Na lokalnego użytkownika rekurencyjnie.

  2. Zapytaj npm, bower, grunt, ... społeczność, że zajmują się tym problemem, jak opisałem go powyżej.

 2
Author: paperclip,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-29 11:22:18

[1]}dostałem ten błąd podczas próby zainstalowania wtyczki grunt. znalazłem nieaktualną wersję npm i błąd zniknął po aktualizacji npm do najnowszej wersji

npm install -g npm
 2
Author: Prabhu Murthy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-04 16:13:39

Mam podobny problem : ERR! enoent ENOENT: no such file or directory, chmod 'node_modules/npm/node_modules/request/node_modules/http-signature / node_modules/sshpk / bin / sshpk-conv Próbowałem wszystkich powyższych rozwiązań, ale bez powodzenia. Używałem vagrant box, a projekt był w udostępnionym folderze. Problemy wydają się być tylko tam, gdy przenoszę projekt do innego folderu nie udostępnionego( woth host), voila! problem rozwiązany. Na wypadek, gdyby inna osoba używała również vagrant

 2
Author: joaco1977,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-02 21:05:58

Próbowałem wszystkich rzeczy, które znalazłem w sieci (npm cache clear i rm -rf ~/.npm), ale nic nie działa. Rozwiązaniem problemu była aktualizacja node (i npm) do najnowszej wersji. Spróbuj.

 1
Author: Nikola M.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-24 16:49:22

W Windows miałem podobny błąd. Wyszukaj wklej DANE aplikacji i wyszukaj ciąg npm.

Zamieniłem łańcuch 'npm' (wraz z cudzysłowami) na 'npm.cmd' w obu atlasboard\lib\package-dependency-manager.js i atlasboard\lib\cli\commands.js. To rozwiązało problem.

 1
Author: Vinicius Carvalho,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-27 17:48:01

Ten sam błąd podczas globalnej instalacji (npm install -g mymodule) dla pakietu z nieistniejącym skryptem.

W opakowaniu.json:
    ...
    "bin": {
      "module": "./bin/module"
    },
    ...

Ale ./bin/module nie istnieje, Jak to zostało nazwane modulejs.

 1
Author: hg.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-03 12:40:32
  1. Zainstaluj najnowszą wersję węzła
  2. Uruchom: npm Cache clean
  3. Run: npm install cordova-g
 1
Author: Dilhan Jayathilake,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-10 03:29:34

Możesz uzyskać ten błąd, jeśli Twój węzeł.js jest w jakiś sposób uszkodzony, jak również. Naprawiłem ten błąd przez uninstall / restart / install node.js całkowicie i naprawił ten błąd, wraz z trzema innymi tajemniczymi błędami, które są wyrzucane.

 1
Author: LAdams87,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-26 04:04:50

Napotkałem podobne zachowanie po aktualizacji do npm 6.1.0. Wydawało się, że kiedyś zadziałało, ale potem dostałem się do stanu z tym błędem podczas próby zainstalowania pakietu, który został określony przez path na systemie plików:

npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall rename

Następujące rzeczy nie naprawiły problemu :

  • rm -rf node_modules
  • npm cache clean (dał npm ERR! As of npm@5, the npm cache self-heals....use 'npm cache verify' instead.)
  • npm cache verify
  • rm -rf ~/.npm

Jak ja naprawiłem problem :

  • rm package-lock.json
 1
Author: Ian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-12 12:50:16

Miałem podobny problem z inną przyczyną: generator yo node dodał "files": ["lib/"] do mojego package.json, a ponieważ mój cli.js znajdował się poza katalogiem lib/, był pomijany podczas publikowania w npm.

(Yeoman issue at https://github.com/yeoman/generator-node/issues/63 to powinno być naprawione wkrótce.)

 0
Author: Nathan Friedly,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-06 16:51:59

Otrzymałem błąd "Error: ENOENT, stat "C:\Users\userName\AppData\Roaming\npm". Ale nie było takiego katalogu. Utworzyłem katalog i instalacja npm zaczęła działać

 0
Author: k.iyengar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-29 02:39:50

Niedawno uaktualniłem do node 4.2.1 na komputerze z systemem Windows 7 x64. Podczas biegu

npm install -g bower

Mam podobny błąd:

Npm ERR! enoent ENOENT: no such file or directory, open 'C:\Users\THE_USERNAME\AppData\Local\Temp\npm-THE_HASH"

Myśląc, że jest to związane ze ścieżką AppData, pobawiłem się

npm config edit

I

npm config edit --global

Aby zmienić prefiks, pola cache i tmp, ale otrzymał ten sam błąd z nowymi ścieżkami:

Npm ERR! enoent ENOENT: no such file or directory, open 'C:\Users\THE_USERNAME\npm-temp\npm-THE_HASH"

Wszystkie polecenia były uruchamiane jako Administrator, więc miałem pełne uprawnienia.

Potem pomyślałem, że są jakieś problemy z istniejącymi plikami, więc uruchomiłem:

npm cache clean

Ale mam ten sam błąd. Jednak nadal istniały pewne pliki tymczasowe. Ręczne usunięcie wszystkich danych tymczasowych za pomocą Cygwina w końcu naprawiło problem dla mnie:

rm -rf bower bower.cmd node_modules etc

Jeśli masz tylko Windows cmd, możesz użyj czegoś w stylu

rmdir /S THE_TEMP_DIR

Aby usunąć wszystkie podkatalogi (chociaż jeśli masz głęboko zagnieżdżone zależności węzłów, jest to notorycznie problematyczne)

Więc może są jakieś problemy z aktualizacją npm i posiadaniem wersji bowera lub innych pakietów. W moim przypadku wydawało się to problemem

 0
Author: Andrew Johnston,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-30 16:45:16

Podczas instalacji ionic dostałem poniżej błąd

115648 błąd enoent ENOENT: brak takiego pliku lub katalogu, Zmień nazwę 'C:\Users\UserName\AppData\Roaming\npm\node_modules.staging\ansi-b11f0c4b" - > 'C:\Users\UserName\AppData\Roaming\npm\node_modules\ionic\node_modules\cordova-lib\node_modules\ansi'

Przy tej ścieżce nie było żadnego folderu o nazwie ansi. Stworzyłem go tam i zainstalowałem poprawnie.

 0
Author: Vijay Mishra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-06 18:13:55

Jeśli próbowałeś "dokonać instalacji" w katalogu projektu z tym błędem, możesz spróbować:

rm -rf ./node_modules
npm cache clear
npm remove sails

Następnie możesz spróbować "make install"

Jeśli masz " npm ERR! enoent ENOENT: no such file or directory, chmod '.../ djam-backend/node_modules/js-beautify/js/bin / css-beautify.js "" wtedy możesz spróbować zainstalować jakąś poprzednią wersję js-beautify, więcej komentarzy: https://github.com/beautify-web/js-beautify/issues/1247

"dependencies": {
  ...
  "js-beautify": "1.6.14"
  ...
}

I uruchom "make install". Wygląda na to, że działa w przypadku, gdy nie masz innych zależności, które wymagają wyższej wersji (1.7.0) w tym przypadku musisz obniżyć wersję tych pakietów również w pakietach.json.

Lub

 0
Author: Alex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-18 10:36:14

Żadne z powyższych nie zadziałało. Ale yarn install zadziałało, potem npm i zaczęło działać. Nie wiem, co przędzy stałe, ale szybkie i łatwe rozwiązanie!

 0
Author: Todd Hale,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-19 21:36:16

Spróbuj tego

SET HTTP_PROXY=<proxy_name>

Więc spróbuj tego command.It będzie działać

 -11
Author: user3030233,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-02 19:18:43