错误 [ERR_UNSUPPORTED_DIR_IMPORT]:尝试在本地启动 Nodej

我在尝试将我的应用程序部署到 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...


皈依舞
浏览 657回答 5
5回答

摇曳的蔷薇

明确地指向您的主文件(通常是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

尝试将--experimental-specifier-resolution=node标志添加到您的start脚本中package.json,特别是如果您在本地运行时使用此标志 - 这是 Heroku 将用来启动您的服务器的脚本。scripts":&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;"start":&nbsp;"node&nbsp;--experimental-specifier-resolution=node&nbsp;index", &nbsp;&nbsp;&nbsp;&nbsp;... },

Helenr

在 Node.js 中,import 语句只允许在 ES 模块中使用。因此,目录导入在 Node.js 中不起作用。

慕妹3242003

尝试添加此代码package.json"scripts":&nbsp;{&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;"start":&nbsp;"node&nbsp;--experimental-specifier-resolution=node&nbsp;src/index" &nbsp;&nbsp;&nbsp;&nbsp;}

互换的青春

选项 1 "type": "module", 应该在 "main" 之前:选项:2 将源文件更新为 .mjs 扩展名
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript