Meteor升级至1.6.1.1后出现Cannot find module 'mongodb'错误求助
解决Meteor 1.6.1.1升级后"Cannot find module 'mongodb'"的问题
这个问题的根源很明确:你同时在.meteor/packages(Meteor自带的mongo包)和package.json(npm依赖)里引入了MongoDB相关依赖,而且版本不兼容。Meteor框架本身已经内置了适配当前版本的mongodb驱动,完全不需要你手动在npm依赖里再添加mongodb包——这会导致版本冲突,最终触发模块找不到的错误。
下面是一步步的解决办法:
第一步:移除package.json里的手动mongodb依赖
打开终端,在项目根目录执行命令:meteor npm uninstall mongodb这会把
package.json里的"mongodb": "^3.1.0-beta4"彻底移除。第二步:清理残留文件和缓存
为了确保没有冲突的残留文件,执行以下命令:rm -rf node_modules rm package-lock.json meteor reset注意:
meteor reset会清空本地的Meteor数据库,你提到数据可以清空,所以放心执行即可。第三步:重新安装依赖并启动项目
最后执行以下命令恢复依赖并启动:meteor npm install meteor run
补充说明
你之前尝试的meteor npm install mongodb、降级版本等操作没解决问题,是因为没有从根源上消除重复依赖的冲突。Meteor的mongo@1.4.2包已经内置了适配1.6.1.1版本的mongodb驱动,手动添加更高版本的npm mongodb包会打乱框架内部的依赖链,导致找不到正确的模块。
另外,你可以确认下.meteor/packages里的mongo@1.4.2是和Meteor 1.6.1.1兼容的版本,不需要改动这个文件。
内容的提问来源于stack exchange,提问作者gimzoletova
相关产品推荐
相关产品推荐

