我在尝试将我的应用程序部署到 Heroku 时陷入了一个循环。import cors from 'cors'由于“无法在 Common JS 中加载 ES6 模块”错误,我的导入语句(例如)似乎阻止了应用程序在生产环境中启动。在本地它运行得很好。"type": "module"但是,当我尝试通过添加到我的错误来解决上述错误时,package.json我得到了一组全新的错误,应用程序将不再在本地运行。我相信这个错误是由于我初始化 sequelize 和相关模型的方式造成的,但我不确定。我想解决这个错误,但需要帮助导入新语法……我想。错误,package.json并index.js包括在下面。错误文本[nodemon] starting `babel-node src/index.js`internal/process/esm_loader.js:74 internalBinding('errors').triggerUncaughtException( ^Error [ERR_UNSUPPORTED_DIR_IMPORT]: Directory import '/Users/jeff/Clients/Bummer/Code/Server/src/models' is not supported resolving ES modules imported from /Users/jeff/Clients/Bummer/Code/Server/src/index.js at finalizeResolution (internal/modules/esm/resolve.js:272:17) at moduleResolve (internal/modules/esm/resolve.js:699:10) at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:810:11) at Loader.resolve (internal/modules/esm/loader.js:85:40) at Loader.getModuleJob (internal/modules/esm/loader.js:229:28) at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:51:40) at link (internal/modules/esm/module_job.js:50:36) { code: 'ERR_UNSUPPORTED_DIR_IMPORT', url: 'file:///Users/jeff/Clients/Bummer/Code/Server/src/models'}[nodemon] app crashed - waiting for file changes before starting...
5 回答
摇曳的蔷薇
明确地指向您的主文件(通常是
TA贡献1793条经验 获得超6个赞
明确地指向您的主文件(通常是index.js
)。例如
import ... from './models' // ❌ import ... from './models/index.js' // ✅
替代方式(请参阅下面的更新):
使用--experimental-specifier-resolution=node
标志。例如:
node --experimental-specifier-resolution=node main.js
更新(Node.js v19+):
Node.js 已删除
--experimental-specifier-resolution
标志。它的功能现在可以通过自定义加载器来实现。
阿晨1998
TA贡献2037条经验 获得超6个赞
尝试将--experimental-specifier-resolution=node
标志添加到您的start
脚本中package.json
,特别是如果您在本地运行时使用此标志 - 这是 Heroku 将用来启动您的服务器的脚本。
scripts": { "start": "node --experimental-specifier-resolution=node index", ... },
慕妹3242003
TA贡献1824条经验 获得超6个赞
尝试添加此代码package.json
"scripts": { "start": "node --experimental-specifier-resolution=node src/index" }
添加回答
举报
0/150
提交
取消