it-swarm-eu.dev

npm nainstalovat chyby s chybou: ENOENT, chmod

Snažím se globálně nainstalovat modul npm, který jsem právě publikoval. Pokaždé, když se pokusím nainstalovat, buď z npm nebo ze složky, dostanu tuto chybu.

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

Používám Sudo a všechno, co by mělo fungovat, jsem zkontroloval. Udělal jsem nějaké prohledávání a viděl jsem pár similerových případů, z nichž žádný nebyl vyřešen. Tady jsem se snažil.

  • Aktualizace npm (Sudo npm install -g npm)
  • Vymazat globální mezipaměť npm (Sudo npm cache clear)
  • Vymazání mezipaměti uživatele npm (npm cache clear)

Všiml jsem si, že chyba měla co do činění se souborem, který jsem propojil s cestou, konkrétně když se npm pokoušel udělat chmod. To by neměl být problém, moje lib/cli.js má normální oprávnění a npm má oprávnění superuživatele během této instalace.

Po vykopání do npm docs jsem našel možnost, která by zastavila npm z tvorby bin odkazů (--no-bin-links), když jsem s ním zkusila instalaci, fungovalo to dobře.

Co je to za dohodu? Je to něco divný okrajový případ bug který ještě nemá žádné řešení?

Upravit: Pro odkaz, zde je modul, který jsem nahrál

97
giodamelio

Ok to vypadá, že NPM používá vaši .gitignore jako základ pro soubor .npmignore, a tak ignoruje /lib. Pokud do kořenového adresáře aplikace přidáte prázdný soubor .npmignore, mělo by vše fungovat. 

[edit] - více informací o tomto chování zde: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package

109
badsyntax

Narazil jsem na podobný problém, 

npm cache clean

vyřešil.

97
Genjuro

Dostával jsem tuto chybu na npm instalaci a přidávání .npmignore to nevyřešilo.

Chyba: ENOENT, stat 'C: Uživatelé Moje uživatelské jméno AppData Roaming npm'

Snažil jsem se jít do zmíněné složky a neexistoval. Chyba byla opravena, když I created npm folder ve složce Roaming .

Toto je v systému Windows 8.1

9
Vijay Vepakomma

Tento problém pro mě na Macu vznikl, když jsem se pokoušel spustit npm install -g bower. Dalo mi to spoustu chyb, protože jsem nebyl schopen najít věci jako půvabné fs. Nejsem si jistý, jak jsem instaloval npm původně, ale vypadá to, že možná to přišlo s uzlem pomocí homebrew. Nejdřív jsem běžel

brew uninstall node

Toto odstranilo jak node, tak npm z mé cesty. Odtud jsem to přeinstaloval

brew install node

Když jsem dokončil, měl jsem na své cestě node a npm a byl jsem schopen běžet

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

Tím se úspěšně nainstaloval bower.

Zdá se, že aktualizace vzorců a vylepšování instalací pro mě nefunguje, nevím proč. Odstranění složky .npm bylo něco, co fungovalo pro jiné lidi, a já jsem to zkusil bez úspěchu. Tentokrát jsem to udělal jen pro případ. Všimněte si také, že žádný z následujících problémů pro mě nevyřešil, i když to udělal pro ostatní:

npm cache clean
Sudo npm cache clean
9
user1978019

Měl jsem stejný problém a právě jsem našel manipulaci, která zde není zmíněna. I když bych přispěl ke komunitě:

npm install -g myapp nebyl zkopírován do adresáře bin. Zjistil jsem, že je to proto, že jsem ho nezahrnula do files v mém package.json

"files": [
  "lib",
  "bin" // this was missing
]
4
dthree

Mám podobné chybové hlášení při pokusu o npm install spoustu závislostí. Ukázalo se, že některé z nich se nedaří nainstalovat do Debianu/Ubuntu, protože očekávají, že /usr/bin/node bude spustitelný uzel. Chcete-li opravit, musíte udělat 

Sudo ln -s nodejs /usr/bin/node 

nebo ještě lépe, 

Sudo apt-get install nodejs-legacy

Pro více informací: https://stackoverflow.com/a/21171188/7581

3
itsadok

V lokální instalaci jsem obdržel podobnou chybu v souboru npm install:

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

Nejsem si jistý, co způsobilo chybu, ale nedávno jsem nainstaloval několik nových modulů uzlů lokálně, upgradoval uzel s homebrew a běžel 'npm update -g'.

Jediný způsob, jak jsem mohl problém vyřešit, bylo odstranit lokální adresář node_modules a spustit znovu npm install:

cd [path/to/local/installation]
npm rm -rdf node_modules
npm install
3
g.carey

V mém případě (vícenásobný kód ENOENT errno 34) byl problém s přístupem k adresáři ~/.npm/. Uvnitř se nacházelo několik subdirs s root:root právy, které způsobovaly problémy, když jsem spouštět příkazy jako normální uživatel (bez Sudo). Tak jsem změnil vlastnictví všech subdirs a souborů v adresáři ~/.npm/ do mého lokálního uživatele a skupiny. To udělal ten trik na mém Ubuntu (na Macu by měl fungovat také).

$ Sudo chown yourusername.yourgroupname ~/.npm/ -R

Měli byste znát své uživatelské jméno, že? Pokud ne, spusťte soubor $ whoami a nahraďte jej také svým názvem skupiny:

$ Sudo chown johnb.johnb ~/.npm/ -R

UPRAVIT:

Modelový případ :

Z mého lokálního účtu /home/johnb jsem nainstaloval globálně nějaký generátor pro yeoman, jako je tento:

$ Sudo npm install -g generator-laravel

Problémová povaha :

Výše uvedená akce způsobila, že některé závislosti byly instalovány uvnitř souboru ~/.npm/ dir, což mělo vlastnictví root:root (protože Sudo ...). Je zřejmé, že npm neběží jako lokální uživatel (nebo mění závislost poté, co následuje vlastnictví) při vytahování závislostí a zapisování do lokálního uživatelského subdir ~/.npm/. Pokud bude npm tak neopatrný vůči základním unixovým souborovým systémovým bezpečnostním problémům problém by se znovu objevil. 

Řešení :

  1. Kontinuálně zkontrolujte, zda ~/.npm/ obsahuje podadresáře s jiným vlastnictvím (a/nebo oprávněními), než je váš lokální uživatelský účet, zejména když instalujete nebo aktualizujete něco s sodo (root). Pokud ano, rekurzivně změňte vlastnictví v souboru ~/.npm/ na lokálního uživatele.

  2. Zeptejte se komunity npm, bower, grunt, ..., že řeší tento problém, jak jsem popsal výše.

2
paperclip

Mám podobný problém specificky: ERR! enoent ENOENT: žádný takový soubor nebo adresář, chmod 'node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/bin/sshpk-conv Vyzkoušel jsem všechna výše uvedená řešení, ale ne štěstí. ____.] Používal jsem box na tuláky a projekt byl ve sdílené složce. Problémy se zdají být jen tam, když přemístím projekt do jiné ne sdílené složky (woth Host), voila! Jen pro případ, že by někdo používal i tuláka

2
joaco1977

Myslím, že váš kompilovaný kávový skript chybí v publikovaném balíčku npm. Zkuste napsat příkaz prepublish .

2
leeway

Mám tuto chybu při pokusu o instalaci grunt plugin. jsem zjistil, že jsem měl zastaralé verze npm a chyba odešla po aktualizaci npm na nejnovější verzi

npm install -g npm
2
Prabhu Murthy

Zkoušel jsem všechny věci, které jsem našel na síti (npm cache clear a rm -rf ~/.npm), ale zdá se, že nic nefunguje. Problém byl vyřešen aktualizací uzlu (a npm) na nejnovější verzi. Zkus to.

1
Nikola M.
  1. Nainstalujte nejnovější verzi uzlu
  2. Spustit: npm cache clean
  3. Spustit: npm install cordova -g
1

Ve Windows jsem měl podobnou chybu. Vyhledávání vloží App Data a hledá řetězec npm.

Nahradil jsem řetězec 'npm' (včetně uvozovek) 'npm.cmd' v obou atlasboard\lib\package-dependency-manager.js a atlasboard\lib\cli\commands.js. To problém vyřešilo.

1
Vinicius Carvalho

S podobným chováním jsem se setkal po upgradu na npm 6.1.0. Zdálo se, že to funguje jednou, ale pak jsem se dostal do stavu s touto chybou při pokusu o instalaci balíčku, který byl zadán cestou v souborovém systému:

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

Následující věci problém nevyřešil:

  • rm -rf node_modules
  • npm cache clean (dal npm ERR! As of [email protected], the npm cache self-heals....use 'npm cache verify' instead.)
  • npm cache verify
  • rm -rf ~/.npm

Jak jsem problém vyřešil:

  • rm package-lock.json
1
Ian

Tuto chybu můžete získat, pokud je node.js nějakým způsobem poškozen. Opravil jsem tuto chybu úplným odinstalací/restartem/instalací node.js a opravil tuto chybu spolu se třemi dalšími záhadnými chybami, které jsou hozeny. 

1
LAdams87

Stejná chyba během globální instalace (npm install -g mymodule) pro balíček s neexistujícím skriptem.

V balíčku.json:

    ...
    "bin": {
      "module": "./bin/module"
    },
    ...

./bin/module však neexistoval, protože byl pojmenován modulejs.

1
hg.

Buďte opatrní s neplatnými hodnotami pro klíče "adresáře" a "soubory" v balíčku.json

Pokud začnete s novou aplikací a chcete začít zcela prázdnou, musíte Spustit buď v úplné prázdné složce, nebo v ní mít platný soubor package.json.

Pokud nechcete nejprve vytvořit soubor package.json, stačí zadat: npm i some_package

Balíček s názvem "some_package" by měl být správně nainstalován do nové podsložky "node_modules". 

Pokud nejprve vytvoříte soubor package.json, zadejte: npm init Všechny výchozí hodnoty ponechte (stačí kliknout na tlačítko ENTER), měli byste skončit s platným souborem.

Mělo by to vypadat takto:

{
  "name": "yourfoldername",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

Všimněte si, že chybí následující klíče: " adresáře ", " repository " a " files ". Vypadá to, že pokud použijete nesprávné hodnoty pro " adresáře " a/nebo " files ", nebudete moci balíček nainstalovat. Vynechání těchto klíčů, vyřešilo problém pro mě.

Také si všimněte klíče " main ". Tento je přítomen, ale obsahuje neplatnou hodnotu. Žádný soubor "index.js" (dosud) neexistuje. Můžete ji bezpečně odebrat.

Nyní zadejte: npm i some_package A balíček s názvem "some_package" by měl být správně nainstalován do nové podsložky "node_modules".

1
RWC

Dostával jsem chybu "Chyba: ENOENT, stat" C: Uživatelské jméno AppData Roaming npm ', ale takový adresář nebyl vytvořen.

0
k.iyengar

Nedávno jsem upgrade na uzel 4.2.1 na Windows 7 x 64 stroj. Při běhu

npm install -g bower

Mám podobnou chybu:

npm ERR! enoent ENOENT: žádný takový soubor nebo adresář, otevřený 'C: Uživatelé: USERNAME AppData Místní Teplota npm-THE_HASH'

Myslel jsem, že to souvisí s cestou AppData 

npm config edit

a

npm config edit --global

změnit pole prefixu, mezipaměti a tmp, ale obdržel stejnou chybu s novými cestami:

npm ERR! enoent ENOENT: žádný takový soubor nebo adresář, otevřeno 'C: Uživatelé: USERNAME npm-temp npm-THE_HASH'

Všechny příkazy byly spuštěny jako správce, takže jsem měl plná oprávnění.

Pak jsem si myslel, že existují nějaké problémy s existujícími soubory, takže jsem běžel:

npm cache clean

Ale dostal stejnou chybu. Stále však byly nějaké dočasné soubory. Manuální odstranění všech dočasných dat s cygwinem nakonec problém vyřešilo:

rm -rf bower bower.cmd node_modules etc

Pokud máte pouze Windows cmd, můžete použít něco jako

rmdir /S THE_TEMP_DIR

odebrat všechny podadresáře (ačkoli pokud máte hluboce vnořené závislosti uzlů, je to notoricky problematické)

Takže, možná jsou nějaké problémy s aktualizací npm a s verzemi verzí bower nebo jiných balíčků. V mém případě to vypadalo, že je to problém

0
Andrew Johnston

Měl jsem podobný problém s jinou příčinou: generátor yo node přidal "files": ["lib/"] do mého package.json a protože moje cli.js bylo mimo adresář lib/, při publikování na npm bylo přeskočeno.

(Yomanská otázka na https://github.com/yeoman/generator-node/issues/63 měla by být stanovena brzy.)

0
Nathan Friedly

Pokud jste se pokoušeli "nainstalovat" v adresáři projektu s touto chybou, můžete to zkusit:

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

pak můžete zkusit "provést instalaci"

Pokud máte "npm ERR! Enoent ENOENT: žádný takový soubor nebo adresář, chmod" .../djam-backend/node_modules/js-beautify/js/bin/css-beautify.js '", můžete se pokusit nainstalovat některé předchozí verze js-beautify, více komentářů: https://github.com/beautify-web/js-beautify/issues/1247

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

a spuštění "make install". Zdá se, že funguje v případě, že v tomto případě nemáte jiné závislosti, které vyžadují vyšší verzi (1.7.0), musíte tyto balíčky downgrade také v balíku packages.json.

nebo 

0
Alex

Při instalaci iontové jsem se dostal pod chybu

115648 chyba enoent ENOENT: žádný takový soubor nebo adresář, přejmenovat 'C: Uživatelé Uživatelské jméno AppData Roaming pm node_modules.staging ansi-b11f0c4b' -> 'C: Uživatelé Uživatelské jméno AppData Roaming npm uzly_modelů uzly uzlů_modelů coova-lib uzly_modulů

Na této cestě nebyla žádná složka nazvaná ansi. Vytvořil jsem ho tam a správně nainstaloval.

0
Vijay Mishra

Žádný z výše uvedených pracoval pro mě. Ale yarn install pracoval, pak npm i začal pracovat. Nejste si jisti, co příze pevné, ale rychlé a snadné řešení!

0
Todd Hale