使用dev.env、test.env时运行npm run dev提示找不到.env文件如何解决?
解决方案
报错核心是env-cmd版本的传参格式不匹配,或者配置文件路径不符合预期,按以下步骤排查调整即可:
- 调整package.json的脚本参数
9.0.0及以上版本的env-cmd需要显式添加-f参数指定自定义环境变量文件路径,将package.json中scripts配置修改为:
修改完成后重新执行{ "scripts": { "dev": "env-cmd -f ./config/dev.env nodemon src/index.js", "test": "env-cmd -f ./config/test.env nodemon src/index.js" } }npm run dev即可正常读取指定路径的配置文件。 - 校验配置文件路径与命名
确认package.json所在的项目根目录下存在config文件夹,文件夹内的文件命名为dev.env、test.env,注意不要开启系统文件后缀隐藏导致实际文件后缀为.txt,也不要出现大小写、拼写偏差。路径是相对于项目根目录计算的,如果config文件夹存放位置有变动,要对应调整脚本里的路径参数。 - 可选:统一管理多环境配置
如果需要集中管理所有环境的变量,可以在项目根目录新建.env-cmdrc配置文件,写入对应环境的变量:
之后启动脚本可以简化为{ "dev": { "NODE_ENV": "development", "PORT": 3000 // 其余dev环境变量 }, "test": { "NODE_ENV": "test", "PORT": 3001 // 其余test环境变量 } }env-cmd -e dev nodemon src/index.js。
内容的提问来源于stack exchange,提问作者Sid Pathak
相关产品推荐
相关产品推荐

