【问题标题】:env-cmd error failed to locate ./.env file in gatsby?env-cmd 错误未能在 gatsby 中找到 ./.env 文件?
【发布时间】:2019-05-25 05:00:09
【问题描述】:

我在根文件夹中有一个文件名 .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)
(node:1368) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:1368) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

【问题讨论】:

  • 可能仅在名称为 .env 而不是 .env-development.env.development 时才有效
  • 不,它没有工作
  • 为什么错误中有.env-development,但根目录下的文件名是.env.development
  • 我认为您在控制台“env-cmd .env-development gatsby develop”中使用了这一行,这不是错误。这只是控制台视图。错误语句从第四行开始
  • 如果你的文件名是env.development,命令不应该是env-cmd .env.development gatsby develop而不是env-cmd .env-development gatsby develop

标签: javascript node.js


【解决方案1】:

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

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

欲了解更多信息,请使用此link

【讨论】:

    【解决方案2】:

    这已在最新版本的 env-cmd 中进行了更新,如果您使用的是 9.0.0 版本,它将查找的默认环境文件是 .env

    改用env-cmd -f .env.development gatsby develop,这里提供了-f 用于自定义文件名。

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

        您还可以更新package.json 中的develop 节点脚本,如下所示:

        "develop": "env-cmd gatsby develop"
        

        然后就可以运行节点脚本了,

        npm run develop
        

        gatsby develop
        

        【讨论】:

          【解决方案5】:

          在 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

          【讨论】:

            【解决方案6】:

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

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

            【讨论】:

              【解决方案7】:

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

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

              【讨论】:

              • 添加 -f 对我有用。你能解释一下为什么需要它。它是覆盖默认设置还是什么?
              【解决方案8】:

              第 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

              【讨论】:

                【解决方案9】:

                遇到了同样的问题,这是我添加的 gatsby-config.js 的 sn-p 以使“.env.development”文件对 gatsby 可见。 (不确定这是否是唯一的方法,请节点/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",
                ...
                

                最后,使用

                启动 gatsby 应用程序
                npm run develop
                ,日志提到游乐场可用 -
                
                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
                

                【讨论】:

                  【解决方案10】:

                  将 let sn-p 添加到 gatsby-config.js 文件中对我有用!然后从 gatsby 开始开发 天呐!很好的帮助!

                  【讨论】:

                    【解决方案11】:

                    谢谢大家。 这为我解决了它

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

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

                    如果您想了解如何更好地设置它,您可以查看这篇文章 关于 CSS 技巧 Adebiyi Adedotun

                    【讨论】:

                      【解决方案12】:

                      我有同样的问题,

                      我试过下面的代码

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

                      它不适合我。

                      相反,我添加了配置文件夹的完整路径,如下所示,它的作用就像魅力..!!!!

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

                      【讨论】:

                        【解决方案13】:

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

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

                        然后我只需将 .env.development 文件重命名为 .env.local 即可。

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

                        【讨论】:

                          【解决方案14】:

                          在我的情况下,它可以在 .env 文件中使用以下脚本在 package.json 内进行开发。

                          "develop": "env-cmd gatsby develop"
                          

                          【讨论】:

                            猜你喜欢
                            • 2020-07-30
                            • 2021-03-25
                            • 1970-01-01
                            • 1970-01-01
                            • 2021-11-09
                            • 1970-01-01
                            • 2022-04-07
                            • 2015-05-07
                            • 2019-01-30
                            相关资源
                            最近更新 更多