Đâ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.js
bê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)
}