นี่เป็นข้อผิดพลาดทั่วไปที่เกิดจาก Antivirus มีวิธีแก้ปัญหาสำหรับกรณีเช่นของฉันซึ่งฉันไม่สามารถปิดใช้งาน A / V (นโยบาย บริษัท )
คุณต้องเปลี่ยนแพ็คเกจpolyfills.js
ภายในNpm
:
[NODE_HOME]/node_modules/npm/node_modules/graceful_fs/polyfills.js
มองหาคำสั่งนี้:
if (process.platform === "win32") {
ภายในคำสั่งนี้มีการหมดเวลาทำการลองใหม่ในกรณีที่เกิดข้อผิดพลาด ปัญหาคือในบางกรณีหลังจากหมดเวลาไฟล์ยังคงถูกล็อกโดย A / V วิธีแก้ปัญหาคือตัดการหมดเวลาและปล่อยให้คำสั่งนี้วนซ้ำ การเปลี่ยนแปลงด้วยรหัสก่อนหน้านี้แสดงความคิดเห็น:
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)
}