Windows下执行migrate-mongo create创建迁移脚本报ENOENT错误
migrate-mongo create命令报ENOENT错误排查方案
首先明确:在VS Code终端执行migrate-mongo create命令的操作本身没有问题,不需要更换终端工具,报错核心原因是执行命令时的工作目录错误,或是配置文件缺失必填项,和终端类型无关。
报错路径中出现undefined,是因为migrate-mongo运行时没有读取到合法配置,无法确定要使用的迁移脚本模板类型,才拼接出了无效的模板文件路径。按以下步骤操作即可修复:
- 先切换VS Code终端的工作目录到你当初执行
migrate-mongo init的项目根目录,也就是存放migrate-mongo-config.js配置文件、自动生成的migrations文件夹的目录。Windows环境下执行cd 你的项目本地绝对路径即可切换,切换后执行dir命令,确认当前目录列表中存在migrate-mongo-config.js文件再进行后续操作。 - 如果切换到正确目录后执行命令仍然报同样的错,打开根目录下的
migrate-mongo-config.js文件,补全缺失的moduleSystem配置项,参考配置如下:
module.exports = { // 保留你原来已经配置好的数据库连接地址、changelog集合名、migrations目录路径等配置 moduleSystem: 'commonjs', // 如果你的项目使用ESM模块规范,就把值改为'esm' };
- 配置保存后,重新在项目根目录执行
migrate-mongo create blacklist_the_beatles,即可正常在migrations目录下生成带时间戳前缀的迁移脚本文件。
注意:永远不要切换到npm全局包的安装目录执行migrate-mongo指令,所有迁移相关命令都必须在持有合法
migrate-mongo-config.js文件的项目根目录运行,否则工具无法加载项目级配置,必然出现路径拼接错误。
内容的提问来源于stack exchange,提问作者warCommander
相关产品推荐
相关产品推荐

