如何修复ENOENT: no such file or directory, open './config/dev .json'报错
问题核心原因
你可以直接从报错的关键信息定位问题:
Error: ENOENT: no such file or directory, open './config/dev .json'
程序尝试读取的配置文件名是带空格的dev .json,但你本地存的是无空格的dev.json,因此触发文件不存在报错。该问题是依赖升级后隐性的拼写错误暴露导致,和Node 16本身的兼容性无直接关联。
修复步骤
- 打开项目根目录的
config.js文件,定位到第101行的convict配置加载逻辑,排查文件名拼接的代码:- 检查是否硬编码了末尾带空格的
'dev '字符串 - 检查
start-dev启动脚本中的环境变量配置,是否给NODE_ENV赋值时末尾误加了空格(比如cross-env NODE_ENV=dev这类写法)
- 检查是否硬编码了末尾带空格的
- 若代码逻辑无拼写问题,可核对
convict包的版本差异:旧版本convict会自动修剪文件名的首尾空白,新版本取消了该兼容处理,因此之前被隐藏的空格问题在升级依赖后才触发。 - 定位到空格来源后删除多余空白,保证加载的文件名和实际的
dev.json完全一致即可正常启动。
内容的提问来源于stack exchange,提问作者Saad8113
相关产品推荐
相关产品推荐

