npm ERR! Kesalahan: EPERM: operasi tidak diizinkan, ganti nama

109

Ketika saya mengeksekusi npm installsaya mendapatkan kesalahan ini

npm ERR! Kesalahan: EPERM: operasi tidak diizinkan, ganti nama C: \ proyek ****** \ node_modules \ react-async-script '->' C: \ projects ******* \ node_modules.react-async-script .MENGHAPUS'

  • Saya menjalankan cmd sebagai administrator
  • Saya berlari npm cache cleansebelumnya
  • Saya memastikan semua aplikasi lain tidak memiliki apa pun yang terkait untuk node_modulesdibuka
Robin
sumber
2
menjalankan cmd sebagai administrator bekerja untuk saya
Homer
Dalam kasus saya, saya harus menjalankannya sebagai pengguna biasa (bukan administrator) dan berhasil, tampaknya konflik izin pengguna. Tetapi tampaknya semua solusi lain yang diberikan di sini npm clean, npm install tidak diperlukan. Ini masalah izin pengguna. Jika lebih banyak orang dapat mengonfirmasi, saya dapat memposting jawaban baru.
MG Developer

Jawaban:

125

Dalam situasi saya ini membantu. Sebelum melanjutkan untuk menjalankan perintah ini, tutup semua instance VS Code.

  1. bersihkan cache dengan

    npm cache clean --force
  2. instal versi terbaru npm secara global sebagai admin:

    npm install -g npm@latest --force
  3. bersihkan cache dengan

    npm cache clean --force
  4. Coba instal komponen Anda sekali lagi.

Saya harap ini memperbaiki masalah Anda. Jika tidak, Anda dapat menonaktifkan sementara program antivirus Anda dan mencoba lagi.

Roma
sumber
1
terima kasih @ kamil.ka ini adalah masalah saya di Windows. Atom mengunci package.json sehingga npm install tidak dapat mengubahnya.
George
29
Komentar yang sama berlaku untuk VS Code di Windows… tutup dan masalah hilang
Martin Kearn
1
Bagi saya, saya memiliki proses node lain yang sedang berjalan, json-server dalam kasus saya. Setelah saya berhenti, paket itu diinstal tanpa kesalahan.
EddieB
Bagi saya, kesalahan seperti "ERR! Enoent Ini terkait dengan npm tidak dapat menemukan file" diselesaikan dengan menghentikan semua contoh untuk kode studio visual.
Abhishek
Terkadang kami mengawasi penggunaan webpack yang mengemas semua file js termasuk tautan modul yang tidak diperbarui di mis. app.js. Jadi setelah pembaruan npm, coba jalankan npm run watch. Setelah itu, dalam kasus saya, tautan modul yang tepat diperbarui dalam file app.js baru.
Peter van der Lely
21

Tidak package.json, tapi untuk alasan apapun, saya node_modules/menjadi hanya-baca. Menyetel ulang itu memperbaiki ini.

Amit Bhosle
sumber
"Reset" bagi saya berarti 1.Menutup VS, 2.Menghapus node_modulesdari FileExplorer 3.Restart PC saya 4.Menjalankan npm install --force. Kemudian AKHIRNYA itu berhasil.
EGC
21

Saya membuatnya berfungsi ketika mencoba npm install dengan opsi paksa untuk mengambil sumber daya jarak jauh bahkan jika salinan lokal ada di disk. Coba lari

npm install --force

Diperbarui Untuk beberapa kolega saya, solusi ini tidak berfungsi. Tapi kami mencoba menggunakan benang daripada npm. Ia bekerja (lebih cepat juga) tanpa masalah sepanjang waktu

yarn install [package-name]
sree
sumber
Orang lain menyarankan untuk mematikan perangkat lunak AV. Bagi saya, di jaringan tempat saya berada, ini bukanlah pilihan. Bendera --force memecahkan masalah ini untuk saya
user2590928
Saya hanya menyelesaikan masalah saya dengan menggunakan benang, jadi saya sarankan untuk mencobanya.
Ângelo Polotto
20

Jika Anda ingin menghindari --forceopsi (yang selalu merupakan pendekatan yang lebih baik) , saya sarankan untuk memastikan bahwa Anda telah berhenti menjalankan proyek, karena ini biasanya alasan utama untuk mengunci file di hampir 90% kasus yang pernah saya lihat

Saya menyarankan langkah-langkah berikut dalam urutan ini:

1- In Angular stopping ng sdan in React stopping npm start biasanya menyelesaikan masalah ini karena biasanya kesalahan ini terjadi jika server pengembangan menjalankan proyek karena mengunci beberapa file & kemudian npm tidak dapat memperbaruinya sehingga menimbulkan kesalahan ini

2- Jika cara di atas tidak berhasil, coba tutup editor kode yang memiliki ruang kerja terbuka di dalamnya (mungkin itu mengunci beberapa file atau sesuatu)

Jadi coba tutup editor kode & jalankan:

npm install

3 - Jika masih tidak berhasil, mungkin Anda dapat mencoba --forceopsi

npm install --force
Ahmed Elkoussy
sumber
2
Ini adalah masalah saya, saya membuat folder node_modules melalui terminal di VS Code - untuk beberapa alasan itu tidak cukup menghapus node_modules dari sistem file saya dan membuatnya terkunci. Tidak sampai saya menutup jendela VS Code itu dan membukanya kembali sehingga benar-benar dihapus dan saya dapat menjalankan npm install lagi.
Stu Furlong
13

Saya mendapatkan kesalahan yang sama dan menurut https://github.com/Medium/phantomjs/issues/19 itu mungkin disebabkan oleh perangkat lunak antivirus Anda. Saya menonaktifkan milik saya selama penginstalan dan menjalankan "npm install" di cmd sebagai admin dan berhasil. Semoga ini membantu.

vmaldosan.dll
sumber
1
Per github.com/npm/npm/issues/12059 ini telah diperbaiki. Tidak ada kabar tentang rilis apa yang akan dibuatnya. Per komentar, menonaktifkan AV tidak selalu berfungsi.
pengguna1821052
Dalam kasus saya, saya harus menutup SourceTree selama penginstalan.
Dejan
13

Bagi saya, saya baru saja menutup editor Kode (VS Code) dan kemudian menjalankan perintah yang sama. Dan itu menyelesaikan masalah saya.

Sifat Haque
sumber
9

Seperti yang ditunjukkan Martin Kearn dalam sebuah komentar, menutup Visual Studio menyelesaikan masalah izin npm ini untuk saya. Jelas VS terkadang mengunci file dalam node_modules.

jaycer
sumber
8

Saya mendapatkan hal yang sama. Saya tidak menemukan ini di mana pun tetapi saya sadar bahwa VM kami cenderung mengubah file ke status hanya-baca. Jadi saya membuka package.jsonproperti file dan batal memilih Read-onlydi tab "Umum".

Langkah

  1. Buka package.jsonfile tersebut.
  2. Klik kanan dan pilih Properties .
  3. Di tab Umum , bagian Atribut , hapus pilihan Hanya -baca .
  4. Klik Apply untuk menerapkan perubahan.
christo8989
sumber
Hanya Baca untuk saya meskipun masalah aslinya adalah saya biasanya hanya menggunakan kode untuk menginstal. Dalam satu kasus ini saya membuka contoh baru aplikasi di Visual Studio sehingga saya dapat mem-port beberapa perubahan dari versi lama dan VS segera mulai menginstal sendiri. Saya kemudian membuka kode untuk menjalankan npm install seperti biasanya dan kedua aplikasi menjadi kacau. Setelah beberapa kali gagal, saya kemudian menjatuhkan modul node secara massal dari versi root yang berfungsi dari aplikasi kami untuk memungkinkan saya mem-porting perubahan tersebut. Folder ini hanya-baca jadi kemudian melakukan pemblokiran.
Matrim
8

Ini adalah kesalahan umum yang disebabkan oleh Antivirus. Ada solusi untuk kasus seperti saya, di mana saya tidak dapat menonaktifkan A / V (Kebijakan Perusahaan).

Anda harus mengubah paket polyfills.jsdalam Npm:

[NODE_HOME]/node_modules/npm/node_modules/graceful_fs/polyfills.js

Cari pernyataan ini:

if (process.platform === "win32") {

Di dalam pernyataan ini, ada waktu tunggu membuat percobaan ulang jika terjadi kesalahan. Masalahnya adalah dalam beberapa kasus, setelah waktu tunggu, file masih terkunci oleh A / V. Solusinya adalah merobek batas waktu dan membiarkan pernyataan ini berulang. Perubahan dengan kode sebelumnya berkomentar:

if (platform === "win32") {

fs.rename = (function (fs$rename) { return function (from, to, cb) {
  var start = Date.now()
  var backoff = 0;
  fs$rename(from, to, function CB (er) {
    if (er
        && (er.code === "EACCES" || er.code === "EPERM")
        /*&& Date.now() - start < 60000*/) {
            console.log("Retrying rename file: " + from + " <> " + to)
            fs$rename(from, to, CB);
      /*setTimeout(function() {
        fs.stat(to, function (stater, st) {
          if (stater && stater.code === "ENOENT")
            fs$rename(from, to, CB);
          else
            cb(er)
        })
      }, backoff)*/
      if (backoff < 100)
        backoff += 10;
      return;
    }
    if (cb) cb(er)
  })
}})(fs.rename)
}
Bruno Guaitanele
sumber
Anda tuan adalah MVP yang sebenarnya.
Atanas Korchev
4

Dalam kasus saya, ada sesuatu yang terkunci dan reboot cepat menyelesaikannya.

Kon
sumber
4

Saya mengalami masalah ini beberapa kali hanya di Windows saya mencoba ini dalam urutan biasanya.

  1. npm install --force
  2. Periksa apakah node_modules disetel ke read-only dan hapus jika sudah
  3. Menghapus node_modules/
  4. Periksa apakah ada editor yang dibuka yang memiliki akses ke folder root proyek
  5. Reboot :(

Biasanya mencoba npm installsetelah salah satu langkah itu akan menyelesaikannya.

Srivathsa Harish Venkataramana
sumber
2

Mencoba mengganti nama file ke nama file lain yang sudah ada dapat menyebabkan EPERMkesalahan pada Windows.

Zach Bloomquist
sumber
2

Saya memiliki masalah yang sama setelah memperbarui ke npm ke 5.4.2, npm mulai memberikan kesalahan yang sama untuk sebagian besar perintah npm. Beberapa solusi menyarankan untuk menjalankannya --no-optional, tetapi tidak selalu berhasil.

Yang lain menyarankan untuk menurunkan versi, tetapi saya tidak ingin menurunkannya.

Saya curiga ada masalah dengan penginstalan, tidak yakin apa itu.

Jadi saya memperbarui ulang npm saya:

npm i -g npm

dan bekerja dengan baik sejak saat itu.

Salimd83
sumber
1

npm gagal untuk saya di scandiruntuk:

npm install -g webpack

... yang mungkin disebabkan oleh npm yang mencoba "mengubah" file yang berpotensi dikunci oleh proses lain seperti yang disebutkan di sini dan di beberapa utas github lainnya. Setelah paksa membersihkan cache, memverifikasi cache, menjalankan sebagai admin, menonaktifkan AV, dll. Solusi yang benar-benar berfungsi untuk saya adalah menutup semua hal yang mungkin mengunci file (yaitu memulai ulang komputer saya).

Saya harap ini membantu seseorang yang sedang berjuang.

kmk09k
sumber
1

Saya memiliki masalah yang sama. Alasan kesalahan adalah karakter yang tidak didukung di jalur ke file. Mengganti cyrillic dalam bahasa Inggris - itu membantu.

Aleksey_Kopasov
sumber
1

Saya melakukan hal berikut:

  1. Meningkatkan npm ke versi terbaru: npm install -g [email protected]
  2. menghapus folder npm-cache dari: c:/users/[username]/AppData/Roaming/npm-cache
  3. Apakah cache bersih: npm cache clean --force
  4. Jalankan npm install.
RV.
sumber
1

Buka command prompt sebagai administrator dan arahkan ke lokasi proyek dan kemudian jalankan npm install. itu berhasil untuk saya.

Ashutosh dwivedi
sumber
1

Dalam kasus saya menjalankan npm: v6.9.0&& node: v10.16.1on Windows, saya harus menjalankan CLI (git bash) saya sebagai administrator . Kemudian paket diinstal tanpa peringatan / kesalahan apa pun

ebram khalil
sumber
0

Jawaban saya adalah melakukan npm cache clean --forcedulu. Kemudian jalankan npm install -g [email protected]untuk menginstal versi npm 5.3.0. bagi saya, versi npm ini bekerja tanpa masalah.

UmaShankar
sumber
0

Hapus saja folder paket dari jalur paket global npm. kemudian instal ulang paket tersebut. Perhatikan bahwa paket diinstal secara global di: C: \ Users \ your-name \ AppData \ Roaming \ npm \ node_modules

Ramin Ar
sumber
0

Saya mengalami masalah yang sama di windows 10. Ikuti saja langkah-langkah ini:

  • Buka cmd sebagai administrator.

  • instal paket npm yang diperbarui.

  • npm i -g npm

  • npm init --ya

Anand Tiwari
sumber
0

Menjalankan perintah sebagai Admin Super berhasil untuk saya. Coba lagi setelah menutup Editor tempat Anda bekerja.

pallav bohara
sumber
0

Saya berjuang dengan ini juga. Saya akhirnya solusi yang berfungsi dengan baik jika Anda menggunakan nvm:

cd ~/.nvm/versions/node/{your node version}/lib/ npm install npm

dan hanya itu.

milenion
sumber
0

Ini mungkin karena perangkat lunak Antivirus Anda. Jika Anda tidak dapat menonaktifkan AV, maka Anda dapat mencoba memodifikasi lokasi instalasi global NPM Anda saat node menginstal ke direktori APPDATA yang secara aktif dipantau oleh Mesin AV. Coba jalankan perintah berikut-

npm config set awalan "LOKASI KUSTOM ANDA" npm config setel cache "LOKASI KUSTOM ANDA"

Hapus direktori node_modules dan instal paket Anda lagi.

pengguna3544913
sumber
0

Dalam kasus saya, pengaturan typescript.disableAutomaticTypeAcquisitiondi Visual Studio Code truetampaknya membantu.

Markus Hettich
sumber
0

Menutup PHPStorm memperbaiki masalah saya.

Rualark
sumber
0

Saya menutup VS, menghapus folder node_modules.

Lalu lari:

npm i -D -E clean-webpack-plugin@3.0.0 css- 
loader@3.4.2 html-webpack-plugin@3.2.0 mini-css- 
extract-plugin@0.9.0 ts-loader@6.2.1 typescript@3.7.5 
webpack@4.41.5 webpack-cli@3.3.10 

Kemudian harus mengubah properti untuk tidak hanya membaca di folder node_modules setelah selesai dijalankan.

Lalu lari:

npm i @microsoft/signalr @types/node

Kemudian buka kembali proyek di VS dan package.json tampak benar dengan dependensi.

Di sepanjang baris yang sama dengan yang lain berbicara tentang read only di folder node_modules dan menutup VS untuk menjalankan npm install over.

Sam
sumber
0

Jika Anda mengalami masalah di PHP Storm:

  1. Tutup tab terminal
  2. Buka tab terminal baru
2Fwebd
sumber