Electron-Vite(Vue)项目无法导入本地MongoDB/Mongoose文件
解决Vite+Electron Vue项目中本地模块导入错误的问题
问题原因
你遇到的错误是因为ES模块与CommonJS模块的导入导出语法不匹配:
- 入口文件
index.js使用ES模块的命名解构导入:import { connect } from "./MongoDB"; - 但
MongoDB.js用的是CommonJS的导出方式:module.exports = { connect },这种导出在ES模块体系中会被识别为默认导出,而非命名导出,所以Vite无法找到对应的connect命名导出。
解决方案
方案1:将MongoDB.js改为ES模块导出
直接把MongoDB.js的导出语法改成ES模块格式,和入口文件的导入语法匹配:
// src/main/MongoDB.js import mongoose from 'mongoose'; // 定义connect函数 export const connect = async () => { try { await mongoose.connect('你的MongoDB连接字符串'); console.log('MongoDB连接成功'); } catch (err) { console.error('MongoDB连接失败:', err); } };
之后保持index.js中的导入代码不变即可:
import { connect } from "./MongoDB";
方案2:修改入口文件的导入方式(保留CommonJS导出)
如果不想修改MongoDB.js的CommonJS格式,需要把入口文件的导入改为默认导入,再解构出connect:
// src/main/index.js import MongoDB from "./MongoDB"; const { connect } = MongoDB;
验证
修改后重新执行electron-vite dev,即可正常导入connect函数并使用。
内容的提问来源于stack exchange,提问作者user22231869
相关产品推荐
相关产品推荐

