为什么 Heroku 找不到我的电脑可以找到的文件夹?

Why can't Heroku find a folder my computer can?

当我使用 node index.js 时,我的 discord bot 在我的计算机上运行,​​但是当我在 heroku 终端中做同样的事情时,我收到以下错误,这很奇怪,因为 ./commands 是连接的文件夹github 它在我的电脑上运行良好。

node:internal/fs/utils:344
    throw err;
    ^

Error: ENOENT: no such file or directory, scandir './commands'
    at Object.readdirSync (node:fs:1390:3)
    at Object.<anonymous> (/app/index.js:19:25)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47 {
  errno: -2,
  syscall: 'scandir',
  code: 'ENOENT',
  path: './commands'

这是因为您可能从较低的文件夹调用 Heroku 脚本 - fs 文件系统运行 relative to the current working directory 而不是相对于您调用的脚本。解决方案是使路径成为绝对路径:

fs.readdirSync(path.resolve(__dirname, './commands'))