【问题标题】:fs.rmSync throws undefined is not a function on Ubuntufs.rmSync throws undefined is not a function on Ubuntu
【发布时间】:2022-01-20 17:48:23
【问题描述】:

我正在尝试删除一个包含另一个文件夹的简单文件夹,例如:/tmp/ac6c1fcaeae0c7ec4d1a8/res

为此,我有这个简单的代码:

module.exports.deleteFolder = (path) => {
    try {
        if (fs.existsSync(path)) {
            console.log("Deleting folder " + path)
            fs.rmSync(path, { recursive: true })
        }
    } catch (error) {
        console.log("Error deleting folder at " + path)
        throw error
    }
}

当我在带有 Node 16.13.2 的 Windows 上运行它时,它可以工作,并且我正在使用 pkg 将其部署到具有 Node 10.x 的 Ubuntu 机器上,但我使用 nvm 对其进行了升级(尽管我认为它应该没关系,因为我用于编译的机器也在 16.13.2 上,尽管它在 12.x 上,我也使用nvm 对其进行了升级。

也许我正在编译的机器没有使用nvm 节点版本?因为我读到这个功能是在14.x上添加的。

总之,我正在使用 Windows 进行开发,一个 Ubuntu WSL 具有用于编译的节点 12.x(我使用 nvm 升级到 16.13.2)和另一台我将部署的 Ubuntu 机器。它可以在 Windows 上运行,但不能在生产机器上运行。

编辑:用 Windows 机器编译它也失败了,看起来不是问题。

【问题讨论】:

    标签: node.js npm fs


    【解决方案1】:

    所以看起来我使用的是过时版本的pkg,并且由于它采用全局选项,所以它使用 node14 作为目标。

    pkg-config 文件更改为node16,然后我可以看到错误。更新了所有全局 npm 包,重新编译,它工作了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-24
      • 2012-05-12
      • 1970-01-01
      • 2015-06-24
      • 2021-06-21
      • 1970-01-01
      相关资源
      最近更新 更多