npm ERR! Lỗi: EPERM: hoạt động không được phép, đổi tên


107

Khi tôi thực thi, npm installtôi gặp lỗi này

npm ERR! Lỗi: EPERM: hoạt động không được phép, đổi tên C: \ project ****** \ node_modules \ react-async-script '->' C: \ project ******* \ node_modules.react-async-script .XÓA BỎ'

  • Tôi đang chạy cmd với tư cách quản trị viên
  • Tôi đã chạy npm cache clean trước đây
  • Tôi đảm bảo rằng tất cả các ứng dụng khác không có bất kỳ thứ gì liên quan đến việc node_modulesmở

2
chạy cmd với tư cách là quản trị viên đã làm việc cho tôi
Homer

Trong trường hợp của tôi, tôi phải chạy nó với tư cách người dùng bình thường (không phải quản trị viên) và nó hoạt động, có vẻ như xung đột quyền người dùng. Nhưng có vẻ như tất cả các giải pháp khác được đưa ra ở đây là npm clean, không cần cài đặt npm. Đó là một vấn đề về quyền của người dùng. Nếu nhiều người có thể xác nhận, tôi có thể đăng câu trả lời mới.
MG Developer

Câu trả lời:


122

Trong tình huống của tôi, điều này đã giúp. Trước khi tiếp tục thực hiện các lệnh này, hãy đóng tất cả các phiên bản VS Code.

  1. làm sạch bộ nhớ cache với

    npm cache clean --force
  2. cài đặt phiên bản mới nhất của npm trên toàn cầu với tư cách là quản trị viên:

    npm install -g npm@latest --force
  3. làm sạch bộ nhớ cache với

    npm cache clean --force
  4. Cố gắng cài đặt lại thành phần của bạn.

Tôi hy vọng điều này sẽ khắc phục sự cố của bạn. Nếu không, bạn có thể tạm thời tắt chương trình chống vi-rút của mình và thử lại.


1
cảm ơn @ kamil.ka đây là vấn đề của tôi trên Windows. Atom đang khóa package.json nên không thể thay đổi cài đặt npm.
George

28
Cùng bình luận áp dụng cho VS Mã trên Windows ... đóng nó lại và vấn đề đi xa
Martin Kearn

1
Đối với tôi, tôi có một tiến trình nút khác đang chạy, json-server trong trường hợp của tôi. Sau khi tôi dừng lại rằng gói được cài đặt mà không có lỗi.
EddieB

Đối với tôi, các lỗi như "ERR! Enoent Điều này liên quan đến việc npm không thể tìm thấy tệp" đã được giải quyết bằng cách chấm dứt tất cả các phiên bản cho mã studio trực quan.
Abhishek

Đôi khi chúng tôi giám sát việc sử dụng webpack đóng gói tất cả các tệp js bao gồm các liên kết mô-đun không được cập nhật trong ví dụ. app.js. Vì vậy, sau khi cập nhật npm, hãy thử chạy npm run watch. Sau đó, trong trường hợp của tôi, các liên kết mô-đun thích hợp đã được cập nhật trong tệp app.js mới.
Peter van der Lely

21

Không phải package.json, nhưng vì bất cứ lý do gì, của tôi node_modules/đã trở thành chỉ đọc. Đặt lại đã khắc phục điều này.


"Đặt lại" đối với tôi có nghĩa là 1.Đóng VS, 2.Xóa node_moduleskhỏi FileExplorer 3.Khởi động lại PC 4.Đang chạy npm install --force. Sau đó, CUỐI CÙNG nó hoạt động.
EGC

21

Tôi đã làm cho nó hoạt động khi thử cài đặt npm với tùy chọn buộc để tìm nạp tài nguyên từ xa ngay cả khi bản sao cục bộ tồn tại trên đĩa. Thử chạy

npm install --force

Đã cập nhật Đối với một số đồng nghiệp của tôi, giải pháp này không hoạt động. Nhưng chúng tôi đã thử sử dụng sợi thay vì npm. Nó hoạt động (nhanh hơn) mà không gặp bất kỳ vấn đề nào

yarn install [package-name]

Những người khác đề nghị tắt phần mềm AV. Đối với tôi, trên mạng tôi đang sử dụng, đây không phải là một lựa chọn. Lá cờ --force giải quyết vấn đề này đối với tôi
user2590928

Tôi chỉ giải quyết vấn đề của mình bằng cách sử dụng sợi, vì vậy tôi khuyên bạn nên thử với anh ấy.
Ângelo Polotto

20

Nếu bạn muốn tránh --forcetùy chọn (luôn là cách tiếp cận tốt hơn) , tôi khuyên bạn nên đảm bảo rằng bạn đã ngừng chạy dự án, vì đây thường là lý do chính để khóa tệp trong gần 90% trường hợp tôi đã thấy.

Tôi đề xuất các bước sau theo thứ tự này:

1- Trong Angular dừng ng svà trong React dừng npm start thường giải quyết được vấn đề này vì thường lỗi này xảy ra nếu máy chủ phát triển đang chạy dự án vì nó khóa một số tệp và sau đó npm không thể cập nhật chúng, do đó gây ra lỗi này

2- Nếu cách trên không hoạt động, hãy thử đóng trình chỉnh sửa mã có không gian làm việc được mở trong đó (có thể nó đang khóa một số tệp hoặc thứ gì đó)

Vì vậy, hãy thử đóng trình chỉnh sửa mã và chạy:

npm install

3- Nếu nó vẫn không hoạt động, thì bạn có thể thử --forcetùy chọn

npm install --force

2
Đây là vấn đề của tôi, tôi đã cài đặt một thư mục node_modules thông qua thiết bị đầu cuối trên VS Code - vì lý do nào đó, nó không xóa được node_modules khỏi hệ thống tệp của tôi và đã khóa nó. Cho đến khi tôi đóng cửa sổ VS Code đó và mở lại, nó mới thực sự bị xóa và tôi có thể chạy lại cài đặt npm.
Stu Furlong

13

Tôi cũng gặp phải lỗi đó và theo https://github.com/Medium/phantomjs/issues/19 thì có thể do phần mềm chống vi-rút của bạn gây ra. Tôi đã vô hiệu hóa của tôi trong suốt thời gian cài đặt và thực thi "npm install" trên cmd với tư cách là quản trị viên và nó đã hoạt động. Hi vọng điêu nay co ich.


1
Per github.com/npm/npm/issues/12059 điều này đã được khắc phục. Không có lời nào về việc phát hành nó sẽ làm cho nó thành. Theo nhận xét, việc tắt AV không phải lúc nào cũng hoạt động.
user1821052

Trong trường hợp của tôi, tôi phải đóng SourceTree trong quá trình cài đặt.
Dejan

13

Đối với tôi, tôi chỉ cần đóng trình soạn thảo mã (VS Code) và sau đó chạy lệnh tương tự. Và điều đó giải quyết vấn đề cho tôi.


9

Như Martin Kearn đã chỉ ra trong một nhận xét, việc đóng Visual Studio đã giải quyết các vấn đề về quyền npm này cho tôi. Rõ ràng là VS đôi khi khóa tệp node_modules.


8

Tôi đã nhận được điều tương tự. Tôi không tìm thấy điều này ở bất cứ đâu nhưng tôi nhấn mạnh rằng máy ảo của chúng tôi có xu hướng thay đổi tệp sang trạng thái chỉ đọc. Vì vậy, tôi đã mở package.jsonthuộc tính tệp của và bỏ chọn Read-onlytrong tab "Chung".

Các bước

  1. Đi tới package.jsontệp.
  2. Nhấp chuột phải và chọn Thuộc tính .
  3. Trong tab Chung , phần Thuộc tính , bỏ chọn Chỉ đọc .
  4. Nhấp vào Áp dụng để áp dụng thay đổi.

Chỉ đọc cho tôi mặc dù vấn đề ban đầu là tôi thường chỉ sử dụng mã để cài đặt. Trong trường hợp này, tôi đã mở một phiên bản mới của ứng dụng trong Visual Studio để tôi có thể chuyển một số thay đổi từ phiên bản cũ và VS nhanh chóng bắt đầu cài đặt chính nó. Sau đó, tôi mở mã để chạy cài đặt npm như bình thường và cả hai ứng dụng đều gặp sự cố. Sau nhiều lần không thành công, sau đó, tôi đã thả hàng loạt mô-đun nút khỏi phiên bản gốc đang hoạt động của ứng dụng của chúng tôi để cho phép tôi chuyển lại các thay đổi. Thư mục này ở chế độ chỉ đọc nên sau đó tiếp tục chặn mọi thứ.
Matrim

8

Đây là một lỗi điển hình do Antivirus gây ra. Có một giải pháp cho các trường hợp như của tôi, trong đó tôi không thể tắt A / V (Chính sách công ty).

Bạn phải thay đổi gói polyfills.jsbên trong Npm:

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

Hãy tìm tuyên bố này:

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

Bên trong câu lệnh này, có một khoảng thời gian chờ để thực hiện thử lại trong trường hợp có lỗi. Vấn đề là trong một số trường hợp, sau khi hết thời gian chờ, tệp vẫn bị khóa bởi A / V. Giải pháp là loại bỏ thời gian chờ và để câu lệnh này trong vòng lặp. Sự thay đổi với mã trước đó đã nhận xét:

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)
}

Bạn là MVP thực sự.
Atanas Korchev

4

Trong trường hợp của tôi, một cái gì đó đã bị khóa và khởi động lại nhanh chóng đã giải quyết nó.


4

Tôi đã gặp sự cố này nhiều lần chỉ trong Windows, tôi thường thử những điều này theo thứ tự.

  1. npm install --force
  2. Kiểm tra xem node_modules có được đặt thành chỉ đọc hay không và xóa nếu nó được đặt
  3. Xóa bỏ node_modules/
  4. Kiểm tra xem có trình chỉnh sửa nào được mở có thể có quyền truy cập vào thư mục gốc của dự án không
  5. Khởi động lại :(

Thông thường, hãy thử npm installsau một trong những bước đó sẽ giải quyết được.


2

Việc cố gắng đổi tên tệp thành một tên tệp khác đã tồn tại có thể gây ra EPERMlỗi trên Windows.



2

Tôi đã gặp sự cố tương tự sau khi cập nhật lên npm thành 5.4.2, npm bắt đầu đưa ra lỗi tương tự cho hầu hết các lệnh npm. Một số giải pháp đề xuất để chạy nó với--no-optional , nhưng nó không phải lúc nào cũng hoạt động.

Những người khác đề nghị hạ cấp, nhưng tôi không muốn hạ cấp.

Tôi nghi ngờ rằng có một vấn đề với việc cài đặt, không chắc chắn đó là gì.

Vì vậy, tôi đã cập nhật lại npm của mình:

npm i -g npm

và hoạt động tốt kể từ đó.


1

npm đã thất bại đối với tôi scandirvì:

npm install -g webpack

... có thể do npm cố gắng "sửa đổi" các tệp có khả năng bị khóa bởi các quy trình khác như đã đề cập ở đây và trong một vài chuỗi github khác. Sau khi buộc làm sạch bộ nhớ cache, xác minh bộ nhớ cache, chạy với tư cách quản trị viên, tắt AV, v.v., giải pháp thực sự hiệu quả với tôi là đóng bất kỳ thứ nào có thể đang đặt khóa tệp (tức là khởi động lại máy tính của tôi).

Tôi hy vọng điều này sẽ giúp ai đó đang gặp khó khăn.


1

Tôi đã từng gặp vấn đề tương tự. Lý do cho lỗi là các ký tự không được hỗ trợ trong đường dẫn đến tệp. Đã thay thế ký tự cyrillic trong tiếng Anh - nó đã giúp.



1

Mở dấu nhắc lệnh với tư cách quản trị viên và điều hướng đến vị trí dự án, sau đó chạy npm install. nó đã làm việc cho tôi.


1

Trong trường hợp của tôi đang chạy npm: v6.9.0&& node: v10.16.1bật Windows, tôi phải chạy CLI (git bash) của mình với tư cách quản trị viên . Sau đó, các gói đã được cài đặt mà không có bất kỳ cảnh báo / lỗi nào


0

Câu trả lời của tôi là làm npm cache clean --forcetrước. Sau đó chạy npm install -g npm@5.3.0cài đặt phiên bản npm 5.3.0. đối với tôi, phiên bản npm này hoạt động không có vấn đề gì.


0

Tôi đã làm như sau:

  1. Đã nâng cấp npm lên phiên bản mới nhất: npm install -g npm@6.5.0-next.0
  2. đã xóa thư mục npm-cache khỏi: c:/users/[username]/AppData/Roaming/npm-cache
  3. Đã làm sạch bộ nhớ cache chưa: npm cache clean --force
  4. Ran the npm install.

0

Chỉ cần xóa thư mục gói khỏi đường dẫn của các gói toàn cầu npm. sau đó cài đặt lại gói. Lưu ý rằng các gói được cài đặt toàn cầu trong: C: \ Users \ your-name \ AppData \ Roaming \ npm \ node_modules


0

Tôi đã gặp sự cố tương tự trong windows 10. Chỉ cần làm theo các bước sau:

  • Mở cmd với tư cách quản trị viên.

  • cài đặt gói npm được bổ sung.

  • npm i -g npm

  • npm init - có


0

Chạy lệnh với tư cách Quản trị viên cấp cao đã làm việc cho tôi. Thử lại sau khi đóng Trình chỉnh sửa mà bạn đang làm việc.


0

Tôi cũng đấu tranh với điều này. Tôi phân tích một giải pháp hoạt động tốt nếu bạn sử dụng nvm:

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

và đó là nó.


0

Điều này có thể do phần mềm Chống vi-rút của bạn. Nếu bạn không thể tắt AV thì bạn có thể thử sửa đổi vị trí cài đặt toàn cầu NPM của mình khi nút cài đặt vào thư mục APPDATA được AV Engines giám sát tích cực. Hãy thử chạy các lệnh sau-

npm config set tiền tố "VỊ TRÍ TÙY CHỈNH CỦA BẠN" npm config set cache "VỊ TRÍ TÙY CHỈNH CỦA BẠN"

Xóa thư mục node_modules và cài đặt lại gói của bạn.


0

Trong trường hợp của tôi, thiết lập typescript.disableAutomaticTypeAcquisitiontrong Visual Studio Code truedường như hữu ích.


0

Việc đóng PHPStorm đã khắc phục sự cố cho tôi.


0

Tôi đã đóng VS, xóa thư mục node_modules.

Sau đó chạy:

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 

Sau đó, phải thay đổi thuộc tính để không chỉ đọc trên thư mục node_modules khi nó đã chạy xong.

Sau đó chạy:

npm i @microsoft/signalr @types/node

Sau đó, mở sao lưu dự án trong VS và package.json trông đúng với các phụ thuộc.

Cùng dòng với những người khác nói về chỉ đọc trên thư mục node_modules và đóng VS để chạy npm install over.


0

Nếu bạn gặp sự cố trên PHP Storm:

  1. Đóng tab thiết bị đầu cuối
  2. Mở tab đầu cuối mới
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.