Kesalahan: Tidak dapat menemukan modul '../lib/utils/unsupported.js' saat menggunakan Ionic

262

Saya selalu mendapatkan pesan kesalahan ini ketika saya menjalankan "Ionic start project name":

Pesan eror

Running command - failed![ERROR] An error occurred while running npm install (exit code 1):

    module.js:471
        throw err;
        ^

    Error: Cannot find module '../lib/utils/unsupported.js'
        at Function.Module._resolveFilename (module.js:469:15)
        at Function.Module._load (module.js:417:25)
        at Module.require (module.js:497:17)
        at require (internal/module.js:20:19)
        at /usr/local/lib/node_modules/npm/bin/npm-cli.js:19:21
        at Object.<anonymous> (/usr/local/lib/node_modules/npm/bin/npm-cli.js:79:3)
        at Module._compile (module.js:570:32)
        at Object.Module._extensions..js (module.js:579:10)
        at Module.load (module.js:487:32)
        at tryModuleLoad (module.js:446:12)
inxoy
sumber
Jalur relatif salah ..
Subburaj
periksa jalannya ./bash_profile
Mohan Gopi
Di MacOS - instal ulang dari nodejs.org membantu melihat upvotes dari stackoverflow.com/a/12313655/1497139
Wolfgang Fahl

Jawaban:

774

Cobalah untuk menghapus /usr/local/lib/node_modules/npmdan menginstal ulang simpul lagi. Ini seharusnya bekerja.

Di MacOS dengan Homebrew :

sudo rm -rf /usr/local/lib/node_modules/npm
brew reinstall node
Vincent Ducastel
sumber
1
jika ada yang ingin ke sana melalui finder: knowledge.autodesk.com/support/smoke/troubleshooting/caas/…
A.com
13
Jika Anda menggunakan minuman maka Anda dapat menggunakan: brew unistall --force nodedanbrew install node
Nico
15
@Nico perintah pertama memiliki salah ketik. Koreksi akan brew uninstall --force node.
Jayant Bhawal
11
mengapa itu terjadi?
Gaurav Paliwal
4
Setelah menjalankan perintah di atas, sekarang mendapatkan >> -bash: / usr / local / bin / npm: Tidak ada file atau direktori seperti itu
Tarun
81

Saya mengikuti jawaban sebelumnya dan menginstal ulang node. Tapi saya mendapat kesalahan ini.

Peringatan: Langkah pasca pemasangan tidak selesai dengan sukses. Anda dapat mencoba lagi menggunakan brew postinstall node

Jadi saya menjalankan perintah ini

sudo chown -R $(whoami):admin /usr/local/lib/node_modules/

Lalu lari

brew postinstall node
tacticalmovephase
sumber
atau Anda dapat menjalankan sudo chown -R $ (whoami) $ (brew --prefix) / *
Pathfinder
27

Saya menerima kesalahan yang sama dan sekarang membuatnya berfungsi.

Pertama, pastikan Anda memiliki versi terbaru

brew update

Hapus instance node Anda sebelumnya:

brew uninstall node

Kemudian instal ulang versi terbaru:

brew install node

Dan kemudian pastikan itu di-symlink ke / usr / local jika belum. Anda akan mendapatkan kesalahan untuk memberi tahu Anda untuk menyelesaikan langkah ini.

brew link --overwrite node 

Rincian lebih lanjut tentang cara menginstal / memutakhirkan simpul juga tersedia .

Denae
sumber
12
Anda dapat menggunakan brew uninstall --ignore-dependencies nodejika, misalnya, ada yarndi sistem Anda.
Sound Blaster
18

Di Mac OS X (10.12.6), saya mengatasi masalah ini dengan melakukan hal berikut:

brew uninstall --force node
brew install node

Saya kemudian mendapat kesalahan karena node postinstall gagal, dan untuk menjalankan kembali brew postinstall node

Saya kemudian mendapat kesalahan:

permission denied @ rb_sysopen /usr/local/lib/node_modules/npm/bin/npx

Saya menyelesaikan kesalahan itu dengan:

sudo chown -R $(whoami):admin /usr/local/lib/node_modules

Dan sekarang saya tidak mendapatkan kesalahan ini lagi.

George Stocker
sumber
1
Saya harus mengulangi ini beberapa kali, pada folder yang berbeda yang perlu dibuat atau perlu untuk mengubah kepemilikannya (untuk pengguna saya). Setiap kali saya berlari brew postinstall nodeuntuk menemukan masalah berikutnya, perbaiki itu, ulangi.
T. Kim Nguyen
9

Jika Anda menggunakan perpustakaan "n" @ https://github.com/tj/n . Lakukan hal berikut

  echo $NODE_PATH

Jika jalur simpul kosong, maka

sudo n latest    - sudo is optional depending on your system

Setelah beralih versi Node.js menggunakan n, npm mungkin tidak berfungsi dengan baik.

curl -0 -L https://npmjs.com/install.sh | sudo sh
echo NODE_PATH

Anda akan melihat Node Path Anda sekarang. Kalau tidak, mungkin ada yang lain

phil
sumber
8

Seperti yang disebutkan sebelumnya.

 sudo rm -rf /usr/local/lib/node_modules/npm
 brew uninstall --force node                
 brew install node
jackotonye
sumber
6

Sudah mencoba semua jawaban instalasi brew / atas, tidak ada yang berfungsi untuk laptop saya

Hanya metode di bawah ini yang dapat memperbaiki masalah saya.

1) Jalankan perintah berikut:

sudo rm -rf /usr/local/lib/node_modules/npm
brew uninstall --force node      

2) Kemudian, lanjutkan ke Situs Web Resmi Node.js https://nodejs.org/en/download/current/ untuk mengunduh paket terbaru untuk pemasangan baru.

3) Jalankan perintah npm Anda lagi, yang seharusnya memiliki kesalahan lebih lama.

Metode ini bekerja pada macOS Mojave Versi 10.14.4 .

Jerry Chong
sumber
5

https://nodejs.org/en/

Cukup unduh simpul dari situs web resmi, ini berhasil untuk saya! :)

C Williams
sumber
2

Ya, Anda harus menginstal ulang simpul:

sudo rm -rf /usr/local/lib/node_modules/npm
 brew uninstall --force node                
 brew install node
Walterwhites
sumber
2

Cukup ikuti tiga langkah;

  1. Bersihkan npmcache dengan paksa:

    npm cache clean -f

  2. Instal npaket secara global menggunakan npm:

    npm install -g n

  3. Instal dari salah satu dari tiga opsi ini:

    Sebuah. sudo n stable (get the stable version)

    b. sudo n latest (get the latest version of node)

    c. sudo n x.x.x (get the specific version of node)

Laxmikanta Nayak
sumber
2

Kesalahan Cannot find module '../lib/utils/unsupported.js'ini disebabkan oleh require('../lib/utils/unsupported.js')di ./lib/node_modules/npm/bin/npm-cli.js.

Menurut nodejs requiredocs , modul yang diperlukan dicari relatif terhadap file, seperti yang dimulai ../.

Jadi, jika kita mengambil jalur relatif ../lib/utils/unsupported.jsmulai dari ./lib/node_modules/npm/bin/npm-cli.js, modul yang diperlukan harus berada di ./lib/node_modules/npm/lib/utils/unsupported.js. Jika tidak ada, saya melihat dua opsi:

  • instalasi rusak, dalam hal ini jawaban Vincent Ducastel untuk menginstal ulang node mungkin berfungsi
  • npmtidak ada symlink ke ./lib/node_modules/npm/bin/npm-cli.js. Inilah yang menyebabkan kesalahan pada pengaturan saya. Jika Anda menelepon npm, biasanya akan menemukannya mencarinya di direktori yang tercantum di PATHenv var. Misalnya, mungkin berlokasi di ./bin. Namun, npmdalam ./bindirektori seharusnya hanya symlink ke yang disebutkan di atas ./lib/node_modules/npm/bin/npm-cli.js. Jika itu bukan symlink tetapi langsung berisi kode, suatu tempat dalam proses instalasi symlink diganti dengan file yang ditautkan. Dalam hal ini, itu harus cukup untuk membuat ulang symlink:cd ./bin; rm npm; ln -s npm ./lib/node_modules/npm/bin/npm-cli.js

Semua jawaban yang menyarankan untuk memeriksa NODE_PATHatau npmrckonfigurasi harus diabaikan, karena ini tidak dipertimbangkan saat mencari modul secara relatif.

franzlst
sumber
1

Saya mendapatkan kesalahan ini dengan mencampur metode install / update: node diinstal melalui paket unduhan dari situs web dan kemudian saya menggunakan minuman untuk memperbarui.

Saya memperbaikinya dengan menghapus instalasi versi buatan:

buat penghapusan simpul --ignore-dependencies

Kemudian saya kembali ke situs web node dan mengunduh dan menginstal melalui manajer paket: https://nodejs.org/en/download/ Untuk beberapa alasan, tidak ada jumlah mencoba menginstal ulang melalui minuman bekerja.

jathatham
sumber
0

Dalam kasus saya, $ NODE_PATH hilang:

NODE="/home/ubuntu/local/node" #here your user account after home
NODE_PATH="/usr/local/lib/node_modules" 
PATH="$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:$NODE/bin:$NODE/lib/node_modules"

Untuk memeriksa hanya echo $NODE_PATHkosong berarti tidak disetel. Menambahkannya ke .bashrc disarankan.

SkorpEN
sumber
0

Pada fedora 27 saya memecahkan masalah dengan melakukan ini:

sudo rm -f  /usr/local/lib/node_modules/npm
sudo dnf reinstall nodejs
tbo47
sumber
0

Ini adalah posting video dan blog yang bermanfaat tentang menghapus simpul dari OS komputer Anda. Ini adalah metode penghapusan yang berbeda berdasarkan cara Anda memasang simpul di tempat pertama (brew vs. file binary yang diunduh dari https://nodejs.org/en/

  • jika Anda menginstal node dengan Homebrew maka menyeduh node uninstall akan berfungsi. Pastikan itu dengan menjalankan node -vperintah di terminal Anda.

  • Jika tidak dan jika Anda telah menginstal file biner dari situs nodeJS ini maka Anda harus menjalankan perintah ini di terminal Anda: sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}. Sekali lagi, verifikasi dengan menjalankan perintah simpul -v.

  • Dalam kedua kasus, penghapusan node yang berhasil harus mengakibatkan bash tidak mengenali apa node itu jika benar-benar dihapus

oalbacha
sumber
2
Tautan ke solusi dipersilahkan untuk mendukung jawaban, tetapi jawaban yang Anda poskan harus benar-benar mandiri, artinya tidak mengharuskan pengunjung mengklik ke situs lain yang mungkin berisi konten yang tidak terduga atau berbahaya, atau tidak ada sama sekali.
tripleee
0

Di macOS saya (10.13.3), saya menyelesaikannya setelah menginstal ulang manajer versi Node .

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
source ~/.bashrc
pengguna9869932
sumber
0

Ini dapat terjadi ketika npm/libfolder dikosongkan karena alasan tertentu (bisa juga terjadi karena masalah izin dalam penggunaan terakhir).

Instalasi ulang node dapat memecahkan masalah (seperti yang dinyatakan pada jawaban lain di sini), tetapi saya akan menyarankan menggunakan alat luar biasa yang disebut nvm(Node Version Manager), yang mampu mengelola beberapa versi nodedan npm- ini sebagian besar berguna pada mesin dev dengan lebih dari satu proyek memerlukan versi node yang berbeda.

Ketika Anda menginstal nvm , pesan ini akan hilang dan Anda akan memiliki versi terbaru nodedan npmuntuk digunakan.

Untuk melihat daftar versi simpul yang saat ini diinstal di nvm Anda, jalankan saja:

nvm list

Untuk menginstal dan menggunakan versi simpul baru, jalankan:

nvm install <node_version>

Misalnya untuk menginstal versi terbaru dari node 10.x, jalankan:

nvm install 10

Untuk beralih ke versi yang saat ini diinstal, jalankan:

nvm use <node_version>

Untuk beralih ke versi simpul asli sistem, jalankan saja:

nvm use system

Semoga ini membantu.

Semoga berhasil!

Slavik Meltser
sumber