最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

在Gatsby中设置环境变量

IT培训 admin 6浏览 0评论

在Gatsby中设置环境变量

我用过这个教程:.md

我遵循的步骤:

1)安装[email protected]

2)在根文件夹中创建两个文件:“。env.development”和“.env.production”

3)“按照他们的设置说明”(dotenv npm docs上的示例)

gatsby-config.js

const fs = require('fs');
const dotenv = require('dotenv');
const envConfig = 
dotenv.parse(fs.readFileSync(`.env.${process.env.NODE_ENV}`));
for (var k in envConfig) {
  process.env[k] = envConfig[k];
}

不幸的是,当我运行gatsby develop时,还没有设置NODE_ENV

error Could not load gatsby-config


  Error: ENOENT: no such file or directory, open 'E:\Front-End Projects\Gatsby\sebhewelt\.env.undefined'

它在我手动设置时有效:

dotenv.parse(fs.readFileSync(`.env.development`));

我需要gatsby-config中的环境变量,因为我将敏感数据放在这个文件中:

  {
      resolve: `gatsby-source-contentful`,
      options: {
        spaceId: envConfig.CONTENTFUL_SPACE_ID,
        accessToken: envConfig.CONTENTFUL_ACCESS_TOKEN
      }
    }

如何使它工作?

PS:附加问题 - 因为这让我想到,我知道我不应该在github上放置密码和令牌,但是当从github构建netlify时,还有其他安全方法吗?

回答如下:

你应该只使用env文件,当你习惯将它们检入git时。对于密码/令牌/等。将它们添加到Netlify或您通过其仪表板使用的任何构建工具。

您可以通过process.env.ENV_VARIABLE访问gatsby-config.js和gatsby-node.js。

但是,您无法访问在浏览器中以这种方式添加的环境变量。为此你需要使用.env.development.env.production

在Gatsby中设置环境变量

我用过这个教程:.md

我遵循的步骤:

1)安装[email protected]

2)在根文件夹中创建两个文件:“。env.development”和“.env.production”

3)“按照他们的设置说明”(dotenv npm docs上的示例)

gatsby-config.js

const fs = require('fs');
const dotenv = require('dotenv');
const envConfig = 
dotenv.parse(fs.readFileSync(`.env.${process.env.NODE_ENV}`));
for (var k in envConfig) {
  process.env[k] = envConfig[k];
}

不幸的是,当我运行gatsby develop时,还没有设置NODE_ENV

error Could not load gatsby-config


  Error: ENOENT: no such file or directory, open 'E:\Front-End Projects\Gatsby\sebhewelt\.env.undefined'

它在我手动设置时有效:

dotenv.parse(fs.readFileSync(`.env.development`));

我需要gatsby-config中的环境变量,因为我将敏感数据放在这个文件中:

  {
      resolve: `gatsby-source-contentful`,
      options: {
        spaceId: envConfig.CONTENTFUL_SPACE_ID,
        accessToken: envConfig.CONTENTFUL_ACCESS_TOKEN
      }
    }

如何使它工作?

PS:附加问题 - 因为这让我想到,我知道我不应该在github上放置密码和令牌,但是当从github构建netlify时,还有其他安全方法吗?

回答如下:

你应该只使用env文件,当你习惯将它们检入git时。对于密码/令牌/等。将它们添加到Netlify或您通过其仪表板使用的任何构建工具。

您可以通过process.env.ENV_VARIABLE访问gatsby-config.js和gatsby-node.js。

但是,您无法访问在浏览器中以这种方式添加的环境变量。为此你需要使用.env.development.env.production

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论