【发布时间】:2021-08-17 09:50:19
【问题描述】:
我有一个 GatsbyJS 应用程序,它由 NodeJS express 服务器使用 gatsby-plugin-nodejs 提供服务。我在 Cloud Foundry 中将环境变量设置为 GATSBY_MY_ENVIRONMENT="Production"。
我的 NodeJS 正在使用 express 并且具有以下代码。
const express = require('express');
const app = express();
const gatsby = require("gatsby-plugin-nodejs")
const cfenv = require('cfenv');
const appEnv = cfenv.getAppEnv();
require('dotenv').config()
...
gatsby.prepare({ app }, () => {})
app.listen(appEnv.port, '0.0.0.0', function () {
console.log("server starting on " + appEnv.url);
console.log("My Gatsby env variable " + process.env.GATSBY_MY_ENVIRONMENT);
});
我可以在 NodeJs express 中使用console.log(process.env.GATSBY_MY_ENVIRONMENT) 控制台记录我的变量值 - Production,但我无法在我的 Gatsby 组件中获取此值。
我的 gatsby-config.js 添加了以下内容
require("dotenv").config({
path: `.env.${process.env.NODE_ENV}`,
})
如何在构建时访问我的 GatsbyJS 组件中的这个变量?我试图访问这个变量的组件可能看起来像
import React from 'react';
import Header from 'gatsby-theme-carbon/src/components/Header';
export default class MyComponent extends React.Component {
render() {
return (
<div>
My environment is {process.env.GATSBY_MY_ENVIRONMENT}
</div>
)
}
}
【问题讨论】:
标签: node.js reactjs express gatsby gatsby-plugin