env-cmd错误无法在gatsby中找到./.env文件

时间:2019-05-25 05:00:10

标签: javascript node.js

我在根文件夹中有一个文件名.env.development。我已将env-cmd安装为开发依赖项
当我启动服务器时

  > npm run develop

它给我一个错误

> gatsby-starter-hello-world@0.1.0 develop I:\learngatsby
> env-cmd .env-development gatsby develop

(node:1368) UnhandledPromiseRejectionWarning: Error: Unable to locate env file at default location (./.env)
at I:\learngatsby\node_modules\env-cmd\dist\get-env-vars.js:44:19
at Generator.throw (<anonymous>)
at rejected (I:\learngatsby\node_modules\env-cmd\dist\get-env-vars.js:5:65)
at process._tickCallback (internal/process/next_tick.js:68:7)
at Function.Module.runMain (internal/modules/cjs/loader.js:757:11)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)

(节点:1368)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。引发此错误的原因可能是抛出了一个没有catch块的异步函数,或者是拒绝了一个.catch()无法处理的承诺。 (拒绝ID:2) (节点:1368)[DEP0018] DeprecationWarning:已弃用未处理的承诺拒绝。将来,未处理的承诺拒绝将以非零退出代码终止Node.js进程。

15 个答案:

答案 0 :(得分:12)

此版本已在env-cmd的最新版本中进行了更新,如果您使用的版本是<9.0.0,则它将完美运行,但对于版本> 9.0.0,它将查找的默认环境文件是.env

请改用env-cmd -f .env.development gatsby develop,此处-f是自定义文件名。

答案 1 :(得分:6)

使用-f标志,并确保.env.development文件的路径正确。

"develop": "env-cmd -f ./.env.development gatsby develop"

答案 2 :(得分:4)

您可以使用自己的自定义 .env文件(带有 env-cmd 的'-f'标志)设置环境变量。使用此命令来设置在自定义文件'./ config / myvar.env'中定义的环境变量。

env-cmd -f ./config/myvar.env

有关更多信息,请使用此link

答案 3 :(得分:4)

在Windows中。 首先创建文件.env.development 然后添加package.json: "develop": "env-cmd -f .env.development --fallback gatsby develop" 和:npm run develop 附加:https://css-tricks.com/using-graphql-playground-with-gatsby

答案 4 :(得分:3)

-f添加到您的package.json文件中

"develop": "env-cmd -f .env.development gatsby develop",

答案 5 :(得分:1)

您可以将.env.development重命名为.env,然后运行env-cmd gatsby develop,这将在.env文件中查找环境变量。

您还可以像下面这样更新develop内部的package.json节点脚本:

"develop": "env-cmd gatsby develop"

然后您可以运行节点脚本,

npm run develop

gatsby develop

答案 6 :(得分:1)

步骤1: 首先运行命令:npm install --save-dev env-cmd@10.1.0

步骤2: 将env-cmd .env-development gatsby develop替换为./node_modules/.bin/env-cmd -f ./.env.development gatsby develop

答案 7 :(得分:1)

-f 添加到您的 package.json 文件中。

"dev": "env-cmd -f ./config/dev.env nodemon src/index.js"

答案 8 :(得分:0)

遇到同样的问题,这是我添加的gatsby-config.js的摘要,以使gatsby可以看到“ .env.development”文件。 (不确定这是否是唯一的方法,请node / Gatsby专家发出提示)


let activeEnv =
  process.env.GATSBY_ACTIVE_ENV || process.env.NODE_ENV || "development"

console.log('Using environment config: ${activeEnv}')

require("dotenv").config({
  path: `.env.${process.env.NODE_ENV}`,
})

基于此gatsby-config.js,这是package.json中的开发脚本(未更改)-


...
"develop": "gatsby develop",
...

最后,使用

npm run develop
启动gatsby应用,日志中提到游乐场可用-


You can now view gatsby-starter-hello-world in the
⠀
  http://localhost:8000/
⠀
View the GraphQL Playground, an in-browser IDE, to
⠀
  http://localhost:8000/___graphql

答案 9 :(得分:0)

将let片段添加到gatsby-config.js文件中对我来说很成功!然后从盖茨比开始开发 天哪!很大的帮助!

答案 10 :(得分:0)

docs之后为我修复了该问题。

1。整理.env.development文件

GATSBY_GRAPHQL_IDE=playground

2。在package.json中:

"develop": "GATSBY_GRAPHQL_IDE=playground gatsby develop",

3。然后,最后:

npm run develop

为我解决了问题。希望对您有帮助!

答案 11 :(得分:0)

谢谢大家。 这为我解决了

"develop": "env-cmd --file .env.development --fallback gatsby develop",

并传入此值.env.development文件GATSBY_GRAPHQL_IDE=playground

如果您想了解如何更好地进行设置,可以查看本文。 在CSS技巧上 Adebiyi Adedotun

答案 12 :(得分:0)

我有同样的问题,

我尝试了以下代码

env-cmd -f ./config/myvar.env

它对我不起作用。

相反,我添加了config文件夹的完整路径,如下所示,其工作方式如charm .. !!!!

env-cmd -f fullPath/config/myvar.env

答案 13 :(得分:0)

在我的情况下出现此错误:

Error: Failed to find .env file at path: .env.local at getEnvFile (E:\project\....)

然后我只需将 .env.development 文件重命名为 .env.local ,它就可以正常工作。

或者,如果您正在使用远程git存储库,请检查是否已将团队成员所做的最新更改拉到本地开发环境中。

答案 14 :(得分:0)

就我而言,它可以使用 .env 文件和以下脚本在 package.json 内进行开发。

"develop": "env-cmd gatsby develop"