当我尝试在Meteor https://github.com/vsivsi/meteor-job-collection
中加载以下包时它被100%下载并解压缩,但在加载时会抛出以下错误:
{ [
Error: ENOTEMPTY: directory not empty, rmdir 'C:\Users\LALITS~1\AppData\Local\Temp\mt-16riklk\npm\job\node_modules']
errno: -4051,
code: 'ENOTEMPTY',
syscall: 'rmdir',
path: 'C:\\Users\\LALITS~1\\AppData\\Local\\Temp\\mt-16riklk\\npm\\job\\node_modules' }
我使用的是Windows 8.1 64位。 我试图手动删除该文件夹,但它又创建了一个新文件夹并抛出相同的错误。谁能告诉我这是什么问题?我错过了什么吗?
提前致谢。
答案 0 :(得分:0)
你的问题看起来像这个已知的Meteor bug: https://github.com/meteor/meteor/issues/8663。更新到下一个Meteor版本时,Windows下会出现此错误。
也许您可以尝试建议的解决方案,即编辑以下文件:
C:\Users\[yourName]\AppData\Local\.meteor\packages\meteor-tool\[yourMeteorVersion]\mt-os.windows.x86_32\tools\fs\files.js
...并使用以下代码替换函数files.rm_recursive_async
和files.rm_recursive
:
files.rm_recursive_async = function (path) {
return new Promise(function (resolve, reject) {
rimraf(files.convertToOSPath(path), function (err) {
err && console.log(err);
resolve();
//return err ? reject(err) : resolve();
});
});
}; // Like rm -r.
files.rm_recursive = Profile("files.rm_recursive", function (path) {
try {
rimraf.sync(files.convertToOSPath(path));
} catch (e) {
if (e.code === "ENOTEMPTY" && canYield()) {
files.rm_recursive_async(path).await();
return;
}
console.log(e);
//throw e;
}
}); // Makes all files in a tree read-only.