【发布时间】:2020-08-12 05:07:28
【问题描述】:
我的应用运行了几个月,没有任何问题。
这很简单,只有:
- core.mjs - 主应用文件
- config.json - 设置文件
core.mjs 使用这一行导入设置:import config from "./config.json";
应用程序使用以下命令启动:"node --experimental-modules core.mjs"
JSON 有效。
所有文件都在各自的位置。
我可以在本地运行这个应用程序,它会工作。
但在 heroku 上部署它后,它在启动时崩溃。这是日志:
2020-04-28T10:50:37.750749+00:00 app[worker.1]: (node:4) ExperimentalWarning: The ESM module loader is experimental.
2020-04-28T10:50:37.769400+00:00 app[worker.1]: internal/modules/run_main.js:57
2020-04-28T10:50:37.769402+00:00 app[worker.1]: internalBinding('errors').triggerUncaughtException(
2020-04-28T10:50:37.769402+00:00 app[worker.1]: ^
2020-04-28T10:50:37.769402+00:00 app[worker.1]:
2020-04-28T10:50:37.769403+00:00 app[worker.1]: TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".json" for /app/config.json
2020-04-28T10:50:37.769403+00:00 app[worker.1]: at Loader.defaultGetFormat [as _getFormat] (internal/modules/esm/get_format.js:70:15)
2020-04-28T10:50:37.769404+00:00 app[worker.1]: at Loader.getFormat (internal/modules/esm/loader.js:110:42)
2020-04-28T10:50:37.769404+00:00 app[worker.1]: at Loader.getModuleJob (internal/modules/esm/loader.js:241:31)
2020-04-28T10:50:37.769405+00:00 app[worker.1]: at async ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:44:17)
2020-04-28T10:50:37.769405+00:00 app[worker.1]: at async Promise.all (index 1)
2020-04-28T10:50:37.769406+00:00 app[worker.1]: at async link (internal/modules/esm/module_job.js:48:9) {
2020-04-28T10:50:37.769406+00:00 app[worker.1]: code: 'ERR_UNKNOWN_FILE_EXTENSION'
2020-04-28T10:50:37.769406+00:00 app[worker.1]: }
不使用 JSON 修复
当我尝试修复时,我只是将导入字符串和复制粘贴 json 对象注释到 core.mjs 中,例如:const config = {...}; 这有效但破坏了所有概念。
关于如何处理这个 json 导入问题的任何想法? (无数据库)
【问题讨论】: