NodeJS:不能在模块外使用导入语句(已经尝试过类型:"module")

NodeJS: Cannot use import statement outside a module(already tried type :"module")

我从客户那里收到了一个 NodeJS 应用程序并试图启动它 运行。我收到的第一个问题是“不能在模块外使用导入语句”。因此,我尝试在 package.json 中包含 "type": "module" 但它仍然无法正常工作。在包含上述行后提供“nodemon src\server.js”命令后,我收到错误 [ERR_MODULE_NOT_FOUND]: Cannot find module 'D:\Projects\MyApp\APIs\src\app' imported from D:\Projects\MyApp\APIs\src\server.js

当我改变

import app from './app';

import app from './app.js';

错误出现,但它发生在其他导入中。例如: 错误 [ERR_MODULE_NOT_FOUND]:找不到从 D:\Projects\MyApp\APIs\src\app.js

导入的模块 'D:\Projects\MyApp\APIs\src\routes\user'

再说一次,如果我改变

import UserRoutes from './routes/v1/user/user';

import UserRoutes from './routes/v1/user/user.js';

此导入错误消失,但其他导入语句再次弹出。 js文件很多,只导入了这样的。我是否需要在所有导入的地方都包含扩展名,或者有没有办法解决它? 我使用的节点版本是 14.17.0

您可以使用节点模块结构来解决:

完整命令:

node --experimental-modules --es-module-specifier-resolution=node app.js

有关详细信息,请查看 this