我在根文件夹中有一个文件名.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进程。
答案 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之后为我修复了该问题。
GATSBY_GRAPHQL_IDE=playground
"develop": "GATSBY_GRAPHQL_IDE=playground gatsby develop",
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"