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

时间:2021-05-23 16:21:34

标签: node.js import

我收到了来自客户端的 NodeJS 应用程序,并尝试启动并运行它。我收到的第一个问题是“不能在模块外使用导入语句”。所以,我尝试在 package.json 中包含 "type": "module" 但它仍然无法正常工作。在包含上述行后提供“nodemon src\server.js”命令时,我收到错误 [ERR_MODULE_NOT_FOUND]: 找不到从 D:\Projects\MyApp\ 导入的模块 'D:\Projects\MyApp\APIs\src\app' 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

1 个答案:

答案 0 :(得分:1)

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

完整命令:

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

有关详细信息,请查看 this