Saya mencoba menginstal secara global modul npm yang baru saja saya terbitkan. Setiap kali saya mencoba menginstal, baik dari npm atau folder, saya mendapatkan kesalahan ini.
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! <npm-@googlegroups.com>
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
Saya menggunakan sudo dan saya telah memeriksa tiga kali semua dalam paket semuanya harus berfungsi. Saya melakukan beberapa pencarian, dan melihat beberapa kasus serupa yang tidak ada satupun yang telah diselesaikan. Inilah yang saya coba.
- Tingkatkan npm (
sudo npm install -g npm
) - Kosongkan cache npm global (
sudo npm cache clear
) - Kosongkan cache npm pengguna (
npm cache clear
)
Saya perhatikan bahwa kesalahan berkaitan dengan file yang saya tautkan ke jalur, khususnya ketika npm mencoba melakukan chmod. Itu seharusnya tidak menjadi masalah, saya lib/cli.js
memiliki izin normal, dan npm memiliki izin pengguna super selama penginstalan ini.
Setelah menggali dokumen npm saya menemukan opsi yang akan menghentikan npm membuat tautan bin ( --no-bin-links
), ketika saya mencoba menginstal dengannya, itu berfungsi dengan baik.
Jadi apa masalahnya? Apakah ini bug kasus pinggiran aneh yang belum ada solusinya?
Edit: Untuk referensi, berikut adalah modul yang saya unggah
--no-bin-links
hanya berhenti NPM dari symlinking file dalam package.json inibin
hash ke jalan di install global.Jawaban:
Ok, sepertinya NPM menggunakan Anda
.gitignore
sebagai basis untuk.npmignore
file tersebut, dan dengan demikian mengabaikan/lib
. Jika Anda menambahkan.npmignore
file kosong ke root aplikasi Anda, semuanya akan berfungsi.[edit] - info lebih lanjut tentang perilaku ini di sini: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
sumber
Saya mengalami masalah serupa,
menyelesaikannya.
sumber
npm cache verify
dan berhasil. terima kasih atas petunjuknya.npm install --cache /tmp/empty-cache
untuk menggunakan cache sementara alih-alih menggunakan yang sebenarnya.Masalah ini entah bagaimana muncul pada saya di Mac ketika saya mencoba menjalankannya
npm install -g bower
. Itu memberi saya sejumlah kesalahan karena tidak dapat menemukan hal-hal seperti anggun-fs. Saya tidak yakin bagaimana saya menginstal npm awalnya, tetapi sepertinya mungkin itu turun dengan node menggunakan homebrew. Saya pertama kali lariIni menghapus keduanya
node
dannpm
dari jalanku. Dari sana saya baru saja menginstalnya kembaliKetika itu selesai saya sudah
node
dannpm
di jalur saya dan saya bisa berlariIni kemudian memasang bower dengan sukses.
Memperbarui formula minuman dan memutakhirkan pemasangan tampaknya tidak berhasil untuk saya, saya tidak yakin mengapa. Penghapusan
.npm
folder adalah sesuatu yang berhasil untuk orang lain, dan saya telah mencobanya tanpa hasil. Saya melakukannya kali ini untuk berjaga-jaga. Perhatikan juga bahwa tidak satu pun dari berikut ini yang memecahkan masalah untuk saya, meskipun hal itu berhasil untuk orang lain:sumber
Saya mendapatkan kesalahan ini pada npm install dan menambahkan .npmignore tidak menyelesaikannya.
Saya mencoba membuka folder yang disebutkan dan itu tidak ada. Kesalahan diperbaiki ketika saya membuat folder npm di folder Roaming .
Ini di Windows 8.1
sumber
Saya memiliki masalah yang sama, dan baru saja menemukan penanganan yang tidak disebutkan di sini. Meskipun saya berkontribusi pada komunitas:
npm install -g myapp
tidak menyalinbin
direktori. Saya menemukan ini karena saya tidak memasukkannya kefiles
dalam sayapackage.json
sumber
files
kunci sayapackage.json
dengan beberapa entri sepertiindex.js
danLICENSE
, tetapi tidakbin
foldernya. Jadi berfungsi jika tidak adafiles
kunci sama sekali, atau jika adafiles
kunci DANbin
folder ke dalamnya .Saya mendapatkan kesalahan serupa pada
npm install
instalasi lokal:Saya tidak yakin apa yang menyebabkan kesalahan, tetapi saya baru-baru ini memasang beberapa modul node baru secara lokal, meningkatkan node dengan homebrew, dan menjalankan 'npm update -g'.
Satu-satunya cara saya dapat menyelesaikan masalah ini adalah dengan menghapus direktori node_modules lokal sepenuhnya dan menjalankannya
npm install
lagi:sumber
Saya memiliki masalah serupa secara khusus: ERR! ENOent ENOENT: tidak ada file atau direktori seperti itu, chmod 'node_modules / npm / node_modules / request / node_modules / http-signature / node_modules / sshpk / bin / sshpk-conv Saya mencoba semua solusi di atas tetapi tidak berhasil. Saya menggunakan kotak gelandangan, dan proyek itu ada di folder bersama. Masalahnya sepertinya hanya ada di sana, ketika saya memindahkan proyek ke folder lain yang tidak dibagikan (woth host), voila! masalah terpecahkan. Untuk berjaga-jaga orang lain juga menggunakan gelandangan
sumber
Saya mendapat pesan kesalahan serupa saat mencoba
npm install
sekelompok dependensi. Ternyata beberapa dari mereka gagal diinstal di Debian / Ubuntu karena mereka berharap/usr/bin/node
menjadi node yang dapat dieksekusi. Untuk memperbaikinya, Anda perlu melakukanatau lebih baik lagi,
Untuk info lebih lanjut: https://stackoverflow.com/a/21171188/7581
sumber
Saya mengalami perilaku serupa setelah meningkatkan ke npm
6.1.0
. Tampaknya berfungsi sekali, tetapi kemudian saya mengalami kesalahan ini ketika mencoba menginstal paket yang ditentukan oleh jalur pada sistem file:Hal-hal berikut tidak menyelesaikan masalah :
rm -rf node_modules
npm cache clean
(memberinpm ERR! As of npm@5, the npm cache self-heals
....use 'npm cache verify' instead.
)npm cache verify
rm -rf ~/.npm
Bagaimana saya memperbaiki masalah :
rm package-lock.json
sumber
Saya pikir skrip kopi terkompilasi Anda hilang dari paket npm yang diterbitkan. Coba tulis perintah prapublikasi .
sumber
takeapeek/lib/cmd.js
tidak ada. Meskipun folder lib mungkin ada 'di sana' saat Anda menerbitkan, itu tidak akan ada 'di sana' saat Anda menginstal melalui npm kecuali itu bagian dari repositori, atau kecuali Anda menggunakan prepublish untuk membuatnya.Dalam kasus saya (beberapa kode ENOENT errno 34) masalah adalah dengan
~/.npm/
akses direktori. Di dalamnya ada beberapa subdir yang memilikiroot:root
hak, yang menyebabkan masalah saat saya menjalankan perintah sebagai pengguna biasa (tanpasudo
). Jadi saya mengubah kepemilikan semua subdir dan file di dalam~/.npm/
dir menjadi pengguna dan grup lokal saya. Itu melakukan trik di Ubuntu saya (di Mac seharusnya juga berfungsi).Anda harus tahu nama pengguna Anda, bukan? Jika tidak, jalankan
$ whoami
dan gantikan nama grup Anda dengan itu juga, seperti ini:EDIT:
Kasus uji :
Dari akun lokal saya,
/home/johnb
saya menginstal secara global beberapa generatoryeoman
, seperti ini:Sifat masalah :
Tindakan di atas menyebabkan beberapa dependensi diinstal di dalam
~/.npm/
dir, memilikiroot:root
kepemilikan (karenasudo ...
). Ternyata npm tidak berjalan sebagai pengguna lokal (atau mengubah kepemilikan subdirektori dependensi sesudahnya) saat menarik dependensi dan menuliskannya ke subdir pengguna lokal~/.npm/
. Selama npm akan sangat ceroboh terhadap masalah keamanan sistem file unix yang mendasar, masalah akan terulang kembali.Solusi :
Periksa secara terus menerus apakah
~/.npm/
berisi subdirektori dengan kepemilikan (dan / atau izin) selain akun pengguna lokal Anda, terutama saat Anda menginstal atau memperbarui sesuatu dengansodo
(root). Jika demikian, ubah kepemilikan di dalam~/.npm/
menjadi pengguna lokal secara rekursif.Tanyakan kepada
npm, bower, grunt, ...
komunitas apakah mereka menangani masalah ini seperti yang saya jelaskan di atas.sumber
Saya mendapat kesalahan ini saat mencoba menginstal plugin grunt. saya menemukan saya memiliki versi npm yang kedaluwarsa dan kesalahannya hilang setelah memperbarui npm ke versi terbaru
sumber
Saya mencoba semua hal yang saya temukan di internet (
npm cache clear
danrm -rf ~/.npm
), tetapi sepertinya tidak ada yang berhasil. Apa yang memecahkan masalah ini adalah memperbarui node (dan npm) ke versi terbaru. Coba itu.sumber
Di Windows saya mengalami kesalahan serupa. Cari, tempel Data Aplikasi, dan cari stringnya
npm
.Saya mengganti string
'npm'
(termasuk tanda kutip) dengan'npm.cmd'
diatlasboard\lib\package-dependency-manager.js
danatlasboard\lib\cli\commands.js
. Itu memperbaiki masalah.sumber
Kesalahan yang sama selama instalasi global (
npm install -g mymodule
) untuk paket dengan skrip yang tidak ada.Di package.json:
Tapi
./bin/module
tidak ada, seperti namanyamodulejs
.sumber
sumber
Anda bisa mendapatkan kesalahan ini jika node.js Anda juga rusak. Saya memperbaiki kesalahan ini dengan uninstall / restart / install node.js sepenuhnya dan itu memperbaiki kesalahan ini, bersama dengan tiga kesalahan misterius lainnya yang terjadi.
sumber
Hati-hati dengan nilai kunci "direktori" dan "file" di package.json yang tidak valid
Jika Anda memulai dengan aplikasi baru, dan Anda ingin memulai dengan benar-benar kosong, Anda harus memulai dengan folder kosong lengkap atau memiliki file package.json yang valid di dalamnya.
Jika Anda tidak ingin membuat file package.json terlebih dahulu, ketik saja:
npm i some_package
Paket dengan nama "some_package" harus diinstal dengan benar di sub folder baru "node_modules".
Jika Anda membuat file package.json terlebih dahulu, ketik:
npm init
Pertahankan semua default (hanya dengan mengklik ENTER), Anda akan mendapatkan file yang valid.Ini akan terlihat seperti ini:
Perhatikan bahwa kunci berikut hilang: " direktori ", " repositori " dan " file ". Sepertinya jika Anda menggunakan nilai yang salah untuk " direktori " dan / atau " file ", Anda tidak dapat menginstal paket. Meninggalkan kunci ini, memecahkan masalah untuk saya.
Perhatikan juga kunci " utama ". Yang ini ada, tetapi mengandung nilai yang tidak valid. Tidak ada file "index.js" (belum). Anda bisa melepasnya dengan aman.
Sekarang ketik:
npm i some_package
dan paket dengan nama "some_package" harus diinstal dengan benar di sub folder baru "node_modules".sumber
Mencoba hampir semuanya lalu akhirnya ini:
Cukup hapus node_modules lalu jalankan
'npm install'
kembalisumber
Saya memiliki masalah serupa dengan penyebab yang berbeda:
yo node
generator telah ditambahkan"files": ["lib/"]
ke sayapackage.json
dan karena sayacli.js
berada di luarlib/
direktori, itu dilewati saat menerbitkan ke npm.(Masalah Yeoman di https://github.com/yeoman/generator-node/issues/63 akan segera diperbaiki.)
sumber
Saya mendapatkan pesan error "Error: ENOENT, stat 'C: \ Users \ userName \ AppData \ Roaming \ npm'. Tapi tidak ada direktori seperti itu. Buat direktori dan npm install mulai bekerja
sumber
Saya baru saja meningkatkan ke node 4.2.1 pada mesin Windows 7 x64. Saat berlari
Saya mendapat kesalahan serupa:
Berpikir itu terkait dengan jalur AppData, saya bermain-main dengannya
dan
untuk mengubah bidang awalan, cache, dan tmp tetapi menerima kesalahan yang sama dengan jalur baru:
Semua perintah dijalankan sebagai Administrator, jadi saya memiliki izin penuh.
Kemudian saya pikir ada beberapa masalah dengan file yang ada, jadi saya menjalankan:
Namun mendapat error yang sama. Namun, masih ada beberapa file sementara yang tergeletak. Menghapus secara manual semua data temp dengan cygwin akhirnya memperbaiki masalah untuk saya:
Jika Anda hanya memiliki cmd Windows, Anda dapat menggunakan sesuatu seperti
untuk menghapus semua subdirektori (meskipun jika Anda memiliki dependensi node yang sangat bertingkat, ini sangat bermasalah)
Jadi, mungkin ada beberapa masalah dengan memutakhirkan npm dan memiliki versi bower atau paket lain yang berkeliaran. Dalam kasus saya, tampaknya itulah masalahnya
sumber
Saat menginstal ionic saya mendapat kesalahan di bawah ini
Tidak ada folder yang dipanggil
ansi
di jalur itu. Saya membuatnya di sana dan dipasang dengan benar.sumber
Jika Anda mencoba untuk "membuat instal" di direktori proyek Anda dengan kesalahan ini, Anda dapat mencobanya:
lalu Anda dapat mencoba untuk "melakukan pemasangan"
Jika Anda memiliki "npm ERR! Enoent ENOENT: tidak ada file atau direktori seperti itu, chmod '... / djam-backend / node_modules / js-beautify / js / bin / css-beautify.js'" maka Anda dapat mencoba menginstal beberapa versi js-beautify sebelumnya, lebih banyak komentar: https://github.com/beautify-web/js-beautify/issues/1247
dan jalankan "make install". Tampaknya berfungsi jika Anda tidak memiliki dependensi lain yang membutuhkan versi lebih tinggi (1.7.0) dalam hal ini Anda harus menurunkan versi paket ini juga di packages.json.
atau
sumber
Semua hal di atas tidak berhasil untuk saya. Tapi
yarn install
berhasil, lalunpm i
mulai bekerja. Tidak yakin benang apa yang diperbaiki, tetapi solusi cepat dan mudah!sumber
Pertama lakukan
lalu lakukan
Setelah itu instal file apa saja yang ingin Anda tambahkan
sumber
Memiliki kesalahan serupa dengan npm di kontainer buruh pelabuhan untuk webpack. Masalah ini disebabkan oleh argumen baris perintah --user dari pengoperasian buruh pelabuhan, karena pengguna dan grup yang diberikan di sana entah bagaimana mengacaukan hak pada volume lokal. Semoga ini bisa membantu seseorang :)
sumber
saya menghadapi kesalahan yang sama tetapi saya mencoba menjalankan perintah create-react-app berkali-kali dan akhirnya dibuat, ini adalah masalah dengan koneksi internet saya. periksa koneksi internet Anda
sumber
Silakan coba ini
Kemudian coba perintah itu. Itu akan berhasil
sumber