npm
perintah dihapus setelah menjalankan npm install -g npm
.
Ini lognya:
~
% brew install node
==> Downloading https://homebrew.bintray.com/bottles/node-13.3.0_1.catalina.bottle.tar.gz
Already downloaded: /Users/manabu/Library/Caches/Homebrew/downloads/8a482358c0487b3ffeeebf4d1f3b3ca825018f6318ecdd6368fd0a6f45e0bea1--node-13.3.0_1.catalina.bottle.tar.gz
==> Pouring node-13.3.0_1.catalina.bottle.tar.gz
==> Caveats
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
==> Summary
🍺 /usr/local/Cellar/node/13.3.0_1: 4,663 files, 59MB
~
% npm install -g npm
/usr/local/bin/npx -> /usr/local/lib/node_modules/npm/bin/npx-cli.js
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
npm ERR! code EEXIST
npm ERR! syscall symlink
npm ERR! path ../../../lib/node_modules/npm/man/man1/npm-access.1
npm ERR! dest /usr/local/share/man/man1/npm-access.1
npm ERR! errno -17
npm ERR! EEXIST: file already exists, symlink '../../../lib/node_modules/npm/man/man1/npm-access.1' -> '/usr/local/share/man/man1/npm-access.1'
npm ERR! File exists: /usr/local/share/man/man1/npm-access.1
npm ERR! Remove the existing file and try again, or run npm
npm ERR! with --force to overwrite files recklessly.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/manabu/.npm/_logs/2019-12-18T07_51_00_280Z-debug.log
Saya mengonfirmasi bahwa ini terjadi lagi ketika saya kehabisan brew reinstall node
.
Sebenarnya seperti yang dikatakan output, saya berhasil menjalankannya dengan --force
tetapi saya pikir hanya menampilkan log ini lebih baik daripada menghapus perintah npm
.
Edit (2020/01/11):
Sebenarnya seperti yang dikatakan output, saya berhasil menjalankannya dengan
--force
Lebih khusus lagi, saya melakukan langkah-langkah ini:
npm
perintah yang telah dihapus oleh npm install -g npm
brew reinstall node
untuk memulihkannyanpm install -g --force npm
sebagai output yang disebutkanterkait dengan perubahan @isaacs di https://github.com/npm/cli/commit/320ac9aeeafd11bb693c53b31148b8d10c4165e8 npm / bin-links # 12 npm / gentle-fs # 7 dirilis di [email protected]
muncul dengan benjolan NPM dari 6.13.2 ke 6.13.4 di homebrew https://github.com/Homebrew/homebrew-core/commit/6acc21a27d0ba4ecfd6ebf4d77af7025143daefe#diff -d3ef2414308e30df24a517ca9a1324ee (ditulis / berkomitmen dengan @pepyakin @fxcoudert @bayandin)
AFAICS ini adalah perilaku yang dimaksudkan di npm. Tidak jelas bagi saya bagaimana ini harus ditangani dalam pengaturan homebrew.
https://github.com/npm/cli/issues/672
Saya melakukan yarn global add npm
dan menginstal [email protected]
dan saya tidak menemukan kesalahan, tetapi sekarang semua paket global saya sebelumnya hilang: ((
Saya memilih keluar dari homebrew dan hanya menggunakan https://github.com/nvm-sh/nvm
Kerjakan saja
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
Kemudian di suatu tempat di ujung, Anda akan melihat
=> Compressing and cleaning up git repository
=> Appending nvm source string to /Users/aprilmintacpineda/.bash_profile
=> Appending bash_completion source string to /Users/aprilmintacpineda/.bash_profile
=> Close and reopen your terminal to start using nvm or run the following to use it now:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
Lakukan saja source <name of profile>
Dalam kasus saya <name of profile>
adalah ~/.bash_profile
jadi itu akan menjadi source ~/.bash_profile
kemudian
nvm install node
untuk menginstal versi terbaru dari node, itu juga akan menginstal versi terbaru dari npm, dan itu berhasil untuk saya.
tidak yakin apakah jelas bagi semua orang di utas ini bahwa solusinya, mengingat Anda tahu apa yang Anda lakukan dan mengapa, sederhana
npm i -g --force npm
(perhatikan bendera --force
)
Masalahnya adalah, setelah melakukan npm -I npm dan mendapatkan kesalahan, mencoba sembarang perintah npm gagal dengan 'zsh: perintah tidak ditemukan: npm', jadi saya tidak dapat melakukan perintah --force bahkan jika saya mau. Saya harus membuat ulang node untuk mendapatkan npm kembali.
Maaf teman-teman, saya tidak sepenuhnya menjelaskan bagaimana saya menghindari masalah ini untuk sementara. Saya telah memperbarui deskripsi, silakan lihat.
tidak yakin apakah jelas bagi semua orang di utas ini bahwa solusinya, mengingat Anda tahu apa yang Anda lakukan dan mengapa, sederhana
npm i -g --force npm
(perhatikan bendera--force
)
Ini adalah satu-satunya solusi yang saya temukan untuk memperbaiki ini sebenarnya.
Kedua kalinya ini terjadi pada saya dalam beberapa minggu. Anda dapat memperbaikinya dengan brew reinstall node
.
Inilah output yang saya jalankan npm install -g npm
:
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
/usr/local/bin/npx -> /usr/local/lib/node_modules/npm/bin/npx-cli.js
npm ERR! code EEXIST
npm ERR! syscall symlink
npm ERR! path ../../../lib/node_modules/npm/man/man1/npm-adduser.1
npm ERR! dest /usr/local/share/man/man1/npm-adduser.1
npm ERR! errno -17
npm ERR! EEXIST: file already exists, symlink '../../../lib/node_modules/npm/man/man1/npm-adduser.1' -> '/usr/local/share/man/man1/npm-adduser.1'
npm ERR! File exists: /usr/local/share/man/man1/npm-adduser.1
npm ERR! Remove the existing file and try again, or run npm
npm ERR! with --force to overwrite files recklessly.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/albertvilacalvo/.npm/_logs/2020-01-13T11_55_47_922Z-debug.log
Solusi yang diringkas adalah:
brew reinstall node
npm i -g --force npm
Ini terjadi tidak hanya dengan penginstalan homebrew. Saya memiliki masalah yang sama dengan penginstal nodejs (dari situs resmi). Perbaikannya berhasil, meskipun ... (sudo npm i -g --force npm)
Memperbarui npm menghapus npm? Dan itu tidak diperbaiki sejak desember?
Memperbarui npm menghapus npm? Dan itu tidak diperbaiki sejak desember?
Ya, itu juga terjadi pada saya di MacOS 10.15.2
Baru saja terjadi pada saya juga. MacOS Catalina 10.15.3
Ini baru saja terjadi pada saya di Ubuntu, dan saya tidak menggunakan "brew".
Saya akhirnya mencoba menginstal ulang npm, tetapi tidak mengizinkan saya menginstalnya tanpa sudo. Diinstal dengan sudo, kemudian temukan panduan (yang tampaknya buruk) untuk mengklaim kembali kepemilikan direktori ~ / .npm (dan beberapa lainnya). Pada awalnya masih tidak berfungsi, tetapi hash -r memperbaikinya (dalam retrospeksi, memulai ulang Ubuntu saya mungkin juga berfungsi). Ada kemungkinan kecil ini juga memperbaiki masalah yang saya alami dengan react-snap.
Bug ini dilaporkan pada tahun 2014 dan terjadi pada saya hari ini di tahun 2020. Benar-benar bencana. Apakah ini akan diperbaiki?
Saya memilih keluar dari homebrew dan hanya menggunakan https://github.com/nvm-sh/nvm
Kerjakan saja
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
Kemudian di suatu tempat di ujung, Anda akan melihat
=> Compressing and cleaning up git repository => Appending nvm source string to /Users/aprilmintacpineda/.bash_profile => Appending bash_completion source string to /Users/aprilmintacpineda/.bash_profile => Close and reopen your terminal to start using nvm or run the following to use it now: export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
Lakukan saja
source <name of profile>
Dalam kasus saya<name of profile>
adalah~/.bash_profile
jadi itu akan menjadisource ~/.bash_profile
kemudian
nvm install node
untuk menginstal versi terbaru dari node, itu juga akan menginstal versi terbaru dari npm, dan itu berhasil untuk saya.
Ini tidak terjadi jika Anda menggunakan nvm
"Ini tidak terjadi jika Anda menggunakan nvm"
Ya, itu tidak terjadi jika Anda menggunakan yarn
juga, tapi saya tidak yakin itu relevan.
Saya pikir itu tidak relevan. NVM adalah manajer versi node, saya mengalami ini ketika saya menggunakan brew untuk menginstal node, kemudian saya beralih ke nvm, karena itu saya belum mengalami ini. Lihat di sini jika Anda tidak tahu apa itu https://github.com/nvm-sh/nvm#installing -and-update
Komentar yang paling membantu
Solusi yang diringkas adalah: