如何在main.js中导入外部JS文件?为何出现模块未找到错误
解决Node.js中ES模块导入报错
ERR_MODULE_NOT_FOUND 出现Error [ERR_MODULE_NOT_FOUND]的原因及对应解决方法如下:
1. 导入路径缺少文件扩展名
Node.js的ES模块规范要求导入时必须明确指定文件扩展名,无法像CommonJS那样省略后缀。你当前的导入语句import countries from "./countries";未添加.js后缀,导致Node.js无法定位目标文件。
修正后的导入代码:
import countries from "./countries.js"; console.log(countries);
2. 文件路径或文件名错误
- 确认
countries.js与main.js处于同一目录,若文件不在同级目录,需调整路径(比如子目录写./subfolder/countries.js,上级目录写../countries.js)。 - 检查文件名拼写和大小写:Linux/macOS系统区分文件名大小写,确保
countries.js的拼写、大小写与导入语句完全一致(避免出现Countries.js这类错误)。
3. Node.js未启用ES模块支持
Node.js默认使用CommonJS模块系统,要使用import/export语法,需通过以下方式开启ES模块支持:
- 在项目根目录创建
package.json文件,添加"type": "module"字段:{ "type": "module" } - 或者将所有相关文件的扩展名改为
.mjs(比如main.mjs和countries.mjs),Node.js会自动将.mjs文件识别为ES模块。
内容的提问来源于stack exchange,提问作者Muralikumar J
相关产品推荐
相关产品推荐

