Penginstalan NPM tidak dapat menemukan modul 'semver'

196

Saya tidak bisa menggunakan npm installmenggunakan command prompt di NodeJS. Saya mendapatkan kesalahan ini saat menjalankan npm install:

module.js:339
    throw err;
    ^
Error: Cannot find module 'semver'
    at Function.Module._resolveFilename (module.js:337:15)
    at Function.Module._load (module.js:287:25)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (C:\Users\admin\AppData\Roaming\npm\node_modules\npm\l
ib\config\defaults.js:6:14)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Module.require (module.js:366:17)
pengguna2447562
sumber
4
Saya memiliki masalah yang sama Sebagai alternatif, Anda dapat menggunakan benang, alih-alih npm
Wojciech Maślanka
1
Apakah Anda menggunakan benang untuk menginstal package.json?
anandharshan
1
Cukup instal ulang npm
Nuno Ferro

Jawaban:

401

Saya memiliki kesalahan yang sama. npm uninstall npm -g, rm -rf node_modulestidak membantu saya, karena ketika saya mencoba saya mendapatkan Error: Cannot find module 'semver'. Tapi saya menyelesaikan masalah saya dengan langkah-langkah ini (ini akan menghapus modul global lain yang mungkin Anda gunakan):

  • sudo rm -rf /usr/local/lib/node_modules
  • sudo rm -rf ~/.npm
  • brew uninstall --force node
  • brew install node

Semoga ini bisa membantu mereka yang mendapatkan masalah serupa.

kataebits
sumber
3
Digunakan ini pada dua mesin yang berbeda menjalankan El Capitan, bekerja di kedua kasus.
Kamikaze Rusher
7
Gunakan brew uninstall --force nodeuntuk menghapus semua versi
deleze
5
cukup instal npm lagi. curl -0 -L https://npmjs.org/install.sh | sudo shsetelah menghapus folder npm
Baryon Lee
17
Jika Benang sudah diinstal, brew uninstall --ignore-dependencies nodebekerja untuk saya di mana brew uninstall --force nodetidak.
Maxime Lafarie
13
Ini kesalahan saya untuk menempelkan perintah secara buta, tetapi sudo rm -rf /usr/local/lib/node_modulesmenyebabkan saya kehilangan modul global yang saya gunakan seperti tegukan dan server selenium.
Jemuilah
84

Saya menghadapi masalah yang sama di sini.

Jika ini terjadi tepat setelah Anda menjalankan, brew install yarncoba jalankan yarn global add npmdan jalankan - perbaiki!

Ashoor
sumber
2
Solusi ini sangat bagus untuk saya dan jauh lebih sederhana daripada alternatif di sini. Saya pikir benang dapat memotong npm jika instal mendapat izin / kesalahan akses selama upgrade / instal.
Slbox
52

Pada MS Windows, solusinya adalah menghapus %APPDATA%\npmdan menginstal ulangnode

Gangadhar
sumber
Saya berharap bisa menggandakan pemilihan ini untuk Windows. Ada gotcha: Direktori AppData disembunyikan secara default, jadi saya tidak berpikir itu benar-benar diinstal di lokasi ini.
Ringo
7
Pada windows hanya memperbaiki tidak perlu menginstal ulang
MotKohn
2
@MotKohn Repaire apa? Sebuah kaki? sebuah tulang? mobil? "memperbaiki" apa ?!
samayo
2
@samayo Pada Windows tempat Anda menginstal ada opsi perbaikan. Maaf ini adalah komentar kontekstual.
MotKohn
2
Pendekatan ini bekerja untuk saya juga pada laptop Windows 8.1 Enterprise 64-bit saya. Saya harus menghapus folder "npm" dan "npm-cache", diikuti dengan penghapusan instalasi dan instalasi simpul baru.
Eddie
46

Saya juga mengalami hal ini, setelah berlari brew install yarnkemarin. Setidaknya, semuanya baik-baik saja sampai saat itu.

Saya berlari rm -rf node_modulesdan mencoba menginstal ulang, tetapi tidak ada npmperintah yang berfungsi.

Pada akhirnya saya mengambil langkah yang cukup sederhana untuk menginstal ulang Node melalui penginstal Node resmi untuk Mac OS X.

https://nodejs.org/en/download/

Semuanya baik-baik saja sekarang. Baru saja kembali ke direktori, berlari npm installdan selesai triknya.

raffjones
sumber
npm installmelakukannya untukku. Saya menginstal semua dependensi satu per satu tetapi npm installmelakukan semuanya sekaligus. Terima kasih.
tazboy
3
Saya juga mengalami hal ini setelah sayabrew install yarn
Walter Martin Vargas-Pena
1
instal ulang sederhana node.js dari installer osx resmi membantu. Terima kasih!
Roman
itu juga terjadi padaku brew install yarn!! apa-apaan, benang
movac
23

Di Arch Linux, apa triknya bagi saya adalah:

sudo pacman -Rs npm
sudo pacman -S npm
Telmo Trooper
sumber
1
Saya harus menggunakan sudo pacman -Rdduntuk menghapus mengabaikan dependensi, tetapi itu tidak menyelesaikan masalah bagi saya. Menginstal semver dari paket lengkung dalam jawaban Mathias Braun lakukan.
Pierre-Alexis Ciavaldini
15

Baru saja menemukan ini di Arch Linux 4.13.3, saya memecahkan masalah dengan menginstal ulang semver:

pacman -S semver
Matthias Braun
sumber
8

Sebenarnya, ini mengambil referensi dari modul yang tersimpan sebelumnya.

Solusi: Hapus folder npm-cache / npm di direktori instalasi nodejs. Di windows, ada di C: / Pengguna / Nama Pengguna / Appdata / Roaming / npm (atau npm_cache). dan coba pasang lagi.

Hal yang sama untuk dilakukan di OS apa pun.

Shubham Jaiswal
sumber
Itu dia. Saya mencopot node. Kemudian dihapus keduanya npmdan npm_cachedari /Appdata/Roaming. Kemudian pasang node lagi. Tampaknya cache harus disalahkan di sana.
Saulius
7

Dalam kasus saya di macOS (10.13.6), ketika saya menjalankan perintah berikut

npm install -g react-native-cli

Saya mendapat kesalahan ini

Error: Cannot find module 'semver'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Function.Module._load (internal/modules/cjs/loader.js:562:25)
    at Module.require (internal/modules/cjs/loader.js:690:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/unsupported.js:2:14)
    at Module._compile (internal/modules/cjs/loader.js:776:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)

Kesalahan teratasi setelah menjalankan perintah

yarn global add npm

diusulkan oleh @Ashoor

zeeawan
sumber
5

Bagi saya, ini terjadi setelah saya memasang benang secara global. Untuk mengatasi masalah ini, instal npm menggunakan benang dan selesai.

yarn global add npm
the_haystacker
sumber
4

Di Windows, mengunduh MSI Node lagi dan melakukan 'Perbaikan' berhasil untuk saya.

Sornakumar
sumber
2

Saya memiliki masalah yang sama tetapi disebabkan oleh package-lock.jsonfile yang rusak .

Menghapus package-lock.jsondan berlari npm installkembali memperbaikinya untuk saya.

Wireblue
sumber
2

Menghadapi masalah ini ketika saya berlari npm installmenggunakan versi node yang lebih rendah. Kemudian ketika saya memutakhirkan ke versi terbaru dari simpul dan berlari gulp, telah menunjukkan kesalahan ini.

Untuk mengatasi, hapus node_modules dan jalankan kembali npm install. Kemudian gulpberlari dengan baik.

cedric
sumber
1

Hapus saja folder / node_modules dan coba lagi. ;)

Anda dapat menggunakannya npm rmuntuk menghapusnya.

Anda juga dapat memeriksa masalah ini di GitHub. Untuk lebih spesifik tentang pembatalan, coba ikuti ini :

Menghapus instalasi

Sedih melihatmu pergi.

sudo npm uninstall npm -gAtau, jika itu gagal,

sudo make uninstall More Severe Uninstalling

Biasanya, instruksi di atas sudah cukup. Itu akan menghapus npm, tetapi tinggalkan apa pun yang telah Anda instal.

Jika Anda ingin menghapus semua paket yang telah Anda instal, maka Anda dapat menggunakan perintah npm ls untuk menemukannya, dan kemudian npm rm untuk menghapusnya.

Untuk menghapus cruft yang ditinggalkan oleh npm 0.x, Anda dapat menggunakan file skrip clean-old.sh yang disertakan. Anda dapat menjalankannya dengan nyaman seperti ini:

npm mengeksplorasi npm -g - sh scripts / clean-old.sh npm menggunakan dua file konfigurasi, satu untuk konfigurasi per-pengguna, dan yang lainnya untuk konfigurasi global (setiap pengguna). Anda dapat melihatnya dengan melakukan:

npm config get userconfig # defaults menjadi ~ / .npmrc npm config get globalconfig # defaults ke / usr / local / etc / npmrc Menghapus instalan npm tidak menghapus file konfigurasi secara default. Anda harus menghapusnya sendiri secara manual jika Anda ingin mereka pergi. Perhatikan bahwa ini berarti instalasi NPM di masa depan tidak akan mengingat pengaturan yang telah Anda pilih.

Rodmentou
sumber
Memperbarui jawaban saya. Coba sekarang. Jika tidak berhasil, uji sesuatu untuk saya. Salin package.json ke folder lain dan coba gunakan npm install.
Rodmentou
1
Bisakah Anda menempelkan package.json Anda?
Rodmentou
{"name": "workspace", "versi": "0.0.0", "private": true, "script": {"start": "node ./bin/www"}, "dependensi": {" body-parser ":" ~ 1.13.2 "," bson ":" ^ 0.2.22 "," cookie-parser ":" ~ 1.3.5 "," debug ":" ~ 2.2.0 "," express " : "~ 4.13.1", "hbs": "~ 3.1.0", "biarawan": "^ 1.0.1", "morgan": "~ 1.6.1", "serve-favicon": "~ 2.3 .0 "}," engine ": {" node ":" 4.2.2 "}}
user2447562
Sudahkah Anda mencoba menjalankan npm install dengan package.json di folder lain?
Rodmentou
saya harus menghapus instalan ke node.js, setelah menginstal node.js .... saya harus membuat aplikasi sampel menggunakan mean.that saya harus menginstal perintah npm intall, tetapi saya mendapatkan kesalahan yang sama ... tolong berikan solusi untuk saya ....
user2447562
1

Saya akhirnya menemukan ini! Ya, Anda harus menghapus / menghapus semua file dan menginstal ulang. TETAPI BEBERAPA JALUR FILE TERLALU PANJANG UNTUK DIHAPUS SELAMA PROSES UNINSTALL. Jalur file sangat panjang di Node sehingga mungkin tidak dapat dihapus. Anda harus mengubah nama jalur file.

Setelah menghapus instalan Node, gunakan Prompt Perintah, navigasikan ke ... \ Appdata \ roaming \ (gunakan jalur dari pesan kesalahan). Cobalah untuk menghapus folder dengan del npm. Kemudian, jika itu tidak memungkinkan Anda untuk menghapus folder, mulai mengganti nama folder di path file di pesan kesalahan berikutnya menjadi "a" atau sesuatu yang singkat. Anda mungkin harus melakukan ini untuk beberapa folder di sepanjang jalur. Maka Anda harus dapat menghapus! Kemudian instal ulang simpul dan itu harus bekerja.

Windhover
sumber
0

Dalam kasus saya, hanya menjalankan kembali brew install yarnmemperbaiki masalah.

jack4it
sumber
0

Saya menghadapi masalah yang sama setelah menyeduh benang menginstal pada MacOs Sierra 10.12.6 saya. (Dan percobaan pertama instalasi jatuh setelah menyeduh pembaruan sendiri dengan pesan "Homebrew harus dijalankan di bawah Ruby 2.3! Anda menjalankan 2.0.0. (RuntimeError)". Jadi saya menjalankannya kembali.)

Jadi saya menggunakan n manager untuk menginstal ulang npm.

  • beralih ke versi simpul lain (untuk kasus saya ke 8.0) dengan perintah "n" dengan parameter kosong
  • atau instal baru dengan "n xxx" di mana xxx nomor versi simpul (saya perlu 6.9.1)
  • hapus versi yang berfungsi dengan "n rm xxx" di mana xxx nomor versi simpul. gunakan sudo jika perlu
  • instal versi yang berfungsi dengan "n xxx" di mana xxx nomor versi simpul. gunakan sudo jika perlu
  • beralih ke versi node yang berfungsi. (lihat langkah pertama untuk referensi)

Saya pikir masalahnya dapat disebabkan bahwa node diinstal di bawah sudo untuk case.

Larest
sumber
0

Saya memiliki masalah yang sama menginstal di AWS Linux. Saya harus menginstalnya dengan sudo. Jadi untuk menyiasati ini saya mengikuti langkah 3 dari artikel ini (pastikan untuk mendapatkan versi terbaru dari node)

https://www.hostingadvice.com/how-to/update-node-js-latest-version/

wget https://nodejs.org/dist/vx.x.x/node-vx.x.x-linux-x64.tar.xz
tar -C /home/aUser/node --strip-components 1 -xJf node-vx.x.x-linux.x64.tar.xz

Tetapi menginstalnya ke direktori home pengguna /home/aUser/node. Kemudian menambahkan jalur itu ke PATH saya.

export PATH=/home/aUser/node/bin:$PATH

Setelah itu saya bisa melakukan npm installtanpa masalah.

Jerinaw
sumber
0

Saya menghadapi masalah ini saat menjalankan proyek pada versi yang lebih tinggi dari klien. Untuk mengatasi masalah ini, Anda cukup mengomentari modul @ angular-devkit / build-angular dan sekali lagi Anda harus menginstalnya kembali

npm instal @ angular-devkit / build-angular --save

sachin
sumber
0

Pastikan semversudah terpasang:npm install -g semver

Javarome
sumber
1
npm tidak berfungsi, jadi Anda tidak dapat menginstal semver melalui npm. Solusi terbaik adalah dengan menggunakan benang untuk menginstal paket npm atau hilang
NFpeter
@ NFpeter Saya memiliki masalah yang sama persis seperti yang dinyatakan dalam pertanyaan dan memperbaikinya dengan cara ini, jadi npm berhasil (setidaknya dalam kasus saya).
Javarome
0

Bagi saya, itu terjadi ketika memutakhirkan ke tegukan 4 dari tegukan 3 dalam proyek saya. Jadi, ketika saya menjalankan perintah "teguk menonton", itu membuat saya kesalahan yang sama.

Mungkin karena ketidakcocokan versi dibandingkan dengan tegukan yang saya instal secara global.

Jadi, mengupgrade gulp dengan bendera global "-g" akan membantu, atau saya mengikuti ini di bawah

Namun, saya menggunakan "./node_modules/.bin/gulp watch" dalam proyek saya. Ini memastikan bahwa semua dependensi yang dibutuhkan menelan diambil dari node_modules saja.

myDoggyWritesCode
sumber
0

Seperti dicatat oleh anonim (?) Di DeveloperReference.com, langkah-langkah di bawah ini menyelesaikan "semver 'module tidak dapat ditemukan" untuk saya ketika menjalankan npm -install:

* "Saya mengikuti langkah-langkah ini dan itu memecahkan masalah saya uninstall Node.js

  1. Hapus konten folder berikut
    • C: \ Users \ {username} \ AppData \ Roaming \ npm-cache
    • C: \ Users \ {username \ \ AppData \ Roaming \ npm
  2. C: \ Program Files \ nodejs Kemudian instal lagi Node dari https://nodejs.org/en/ "*

https://html.developreference.com/article/12253101/Cannot+find+module+%27semver%27+Ketika+Penginstalan+Npm

Mosca Pt
sumber
-1

Periksa saja skrip pra-instal Anda jika ada. Kadang-kadang untuk membatasi versi nodedan npmorang perlu menjalankan proyek.

Jika itu masalahnya Anda perlu menginstal semversecara manual melaluinpm install -g semver

Mr94
sumber
-2

Saya mengalami masalah yang sama dan memperbaikinya dengan memutakhirkan versi Node saya

tim
sumber