【问题标题】:Meteor Error: ENOTEMPTY: directory not empty流星错误:ENOTEMPTY:目录不为空
【发布时间】:2017-10-05 21:05:24
【问题描述】:

当我尝试在 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 位。 我试图手动删除该文件夹,但它再次创建了一个新文件夹并引发了同样的错误。谁能告诉我有什么问题?我错过了什么吗?

提前致谢。

【问题讨论】:

  • 您是否有任何旧版本仍在运行?你试过重启机器吗?
  • 是的,我已经重启了机器并检查了。
  • 我正在使用 Meteor 1.4.4.3
  • 你是从命令行运行的吗?如果是这样,您是否以管理员权限运行该命令提示符?
  • 是的,我以管理员权限运行它。

标签: javascript node.js meteor


【解决方案1】:

您的问题看起来像这个已知的 Meteor 错误: https://github.com/meteor/meteor/issues/8663。在 Windows 下更新到下一个 Meteor 版本时会出现此错误。

也许您可以尝试建议的解决方案,即编辑以下文件:

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.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-20
    • 1970-01-01
    • 2019-07-24
    • 2020-07-21
    • 2021-12-27
    • 2018-03-20
    • 1970-01-01
    相关资源
    最近更新 更多