Dies ist ein typischer Fehler, der durch Antivirus verursacht wird. Es gibt eine Problemumgehung für Fälle wie meinen, in denen ich A / V (Unternehmensrichtlinie) nicht deaktivieren kann.
Sie müssen das polyfills.js
Innenpaket ändern Npm
:
[NODE_HOME]/node_modules/npm/node_modules/graceful_fs/polyfills.js
Suchen Sie nach dieser Aussage:
if (process.platform === "win32") {
Innerhalb dieser Anweisung gibt es eine Zeitüberschreitung, die im Fehlerfall einen erneuten Versuch durchführt. Das Problem ist, dass in einigen Fällen die Datei nach dem Timeout immer noch von der Klimaanlage gesperrt wird. Die Lösung besteht darin, das Timeout herauszureißen und diese Anweisung in einer Schleife zu lassen. Die Änderung mit dem vorherigen Code kommentierte:
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)
}