Node.js使用ES6语法导入已导出模块提示Cannot find module错误如何解决
Node.js ES6模块导入Cannot find module问题排查方案
- 补全导入文件的后缀名
Node.js的ES模块规范要求导入本地模块时必须携带完整文件后缀名,不会像CommonJS的require一样自动补全.js后缀。将你的导入语句修改为:import { Time } from './service/passport.js'; - 检查文件路径与大小写匹配
确认index.js同级存在service目录,目录下存在passport.js文件。Linux、macOS系统对路径大小写敏感,避免出现路径名大小写不匹配的情况,比如Service、Passport.js这类命名都会导致找不到文件。 - 确认已开启Node.js ES模块支持
两种开启方式二选一即可:- 在项目根目录的
package.json中添加"type": "module"配置项 - 将
.js后缀的模块文件改为.mjs后缀
若未开启ES模块支持,Node.js默认将.js文件识别为CommonJS模块,也可能引发模块解析异常。
- 在项目根目录的
- 确认项目目录结构符合预期
正确的目录结构应该为:项目根目录 ├── package.json ├── index.js └── service └── passport.js
内容的提问来源于stack exchange,提问作者S. D India Taxi Bazaar
相关产品推荐
相关产品推荐

