将dotenv与捆绑的客户端代码一起使用

时间:2018-08-27 02:20:03

标签: node.js gulp environment-variables contentful-management

我正在创建一个Node js应用程序作为Content UI扩展。该代码托管在这里:https://github.com/doodybrains/media-tagging-extension

很多gulp文件都是样板,但最终所有内容都捆绑到index.html文件中。我知道不应在客户端代码中调用或处理env变量,但我不知道在构建项目之前如何将其放入其中。当我在开发中运行存储库并从process.env.NAME_OF_TOKEN调用src/index.js时,它将返回undefined。我尝试了导入dotenv,创建了gulp env管道等。

任何建议都会非常有帮助。该应用程序正在部署到Netlify,并且我已经在其中设置了env变量。

谢谢

1 个答案:

答案 0 :(得分:0)

您可以创建另一个可以使用NODE_ENV设置正确变量的js文件。 我更喜欢致电服务以启动我在应用程序中的所有属性并在某些地图中进行设置。我使用地图在代码的不同位置设置值。

一些示例代码...

const env = process.env.NODE_ENV || 'local';
const sit = {
    URL: 'sit url',
    HOST: 'sit host',
    ENV: 'sit'
};
const uat = {
    URL: 'uat url',
    HOST: 'uat host',
    ENV: 'uat'
};

var property_service_url = config[env].URL;
var property_service_host = config[env].HOST;

在启动您的应用之前,您可以设置NODE_ENV = environment。例如在linux中。

export NODE_ENV=uat

这将确保正确设置环境。现在,在for的app.js中,您可以调用该服务以加载属性。如果您不想呼叫服务,则可以使用设置URL和HOST的相同方法进行设置。