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.
Sudo npm install -g npm
)Sudo npm cache clear
)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
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
Narazil jsem na podobný problém,
npm cache clean
vyřešil.
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
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
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
]
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
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
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í :
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.
Zeptejte se komunity npm, bower, grunt, ...
, že řeší tento problém, jak jsem popsal výše.
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
Myslím, že váš kompilovaný kávový skript chybí v publikovaném balíčku npm. Zkuste napsat příkaz prepublish .
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
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.
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.
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
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.
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
.
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".
Dostával jsem chybu "Chyba: ENOENT, stat" C: Uživatelské jméno AppData Roaming npm ', ale takový adresář nebyl vytvořen.
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
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.)
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
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.
Žá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í!