fs.rmSync throws undefined is not a function on Ubuntu

fs.rmSync throws undefined is not a function on Ubuntu

我正在尝试删除其中包含另一个文件夹的简单文件夹,例如:/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
    }
}

当我在 Windows 上 运行 使用 Node 16.13.2 时,它工作正常,我正在使用 pkg 部署到 Ubuntu 机器,该机器有 Node 10.x 但我使用 nvm 升级了它(尽管我认为这无关紧要,因为我用于编译的机器也在 16.13.2 上,尽管它在 12.x 上并且我升级了它也使用 nvm

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

上添加的

总而言之,我正在使用 Windows 进行开发,一个 Ubuntu WSL 具有节点 12.x 进行编译(我使用 [=15= 升级到 16.13.2 ]) 和我将部署的另一台 Ubuntu 机器。它在 Windows 上工作,但不在生产机器上工作。

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

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

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