gpt4 book ai didi

ember.js - 如何使用 process.env 将环境变量中的 API key 传递给 Ember CLI?

转载 作者:行者123 更新时间:2023-12-03 10:35:23 25 4
gpt4 key购买 nike

如何将环境变量从 bashrc 传递到 Ember CLI。我想象一种情况,您需要 strip api key 或 pusher api-keys,并且您在 bashrc 的环境变量中拥有它们。您如何将 api key 传递给 Ember CLI。

我尝试使用 Node.js process.envbrocfile.jsenvironment.js ,但是当我尝试在 Ember JS Controller 中访问它时,该属性为空。

在我的 environment.js我添加的文件,

APP: { apiKey: process.env.KEY }

在我的 Ember JS Controller 中,我尝试使用以下方法访问它:
import config from  '../config/environment'; 

并设置 Controller 属性 lkey如下所示,这不起作用:
lkey: config.App.KEY

接下来在我的 brocfile.js ,我补充说:
var limaKey = process.env.Key; 
var app = new EmberApp({key: limaKey});

这仍然没有奏效。

最佳答案

我终于解决了这个问题。我面临两个选择。选项 1 是使用 XHR 从服务器上的端点获取 api key 。选项 2 是使用 Nodejs process.env 直接从环境变量中获取 api-key。我更喜欢选项 2,因为它使我免于执行 XHR 请求。

您可以使用这个依赖于 Nodejs Dotenv 项目的 ember-cli-addOn 来获得选项 2

  • https://github.com/fivetanley/ember-cli-dotenv
  • https://github.com/motdotla/dotenv

  • 就我而言,我选择在没有任何插件的情况下进行。
  • 首先将 api-key 添加到您的 .bashrc如果您是 Ubuntu 或适合您自己的 linux 发行版的地方。

  • export API_KEY=NwPyhL5
  • 重新加载 .bashrc文件,所以你的设置被选中:

  • source ~/.bashrc
  • 在 Ember CLI 中添加一个属性到 ENV对象在 config/environment.js .默认看起来像这样

  • module.exports = function(environment) {
    var ENV = {
    modulePrefix: 'rails-em-cli',
    environment: environment,
    baseURL: '/',
    locationType: 'auto',
    EmberENV: {

    }
    }

    现在到了 ENV对象,我们可以添加一个新属性 myApiKey 像这样:
    module.exports = function(environment) {
    var ENV = {
    modulePrefix: 'rails-em-cli',
    environment: environment,
    baseURL: '/',
    locationType: 'auto',
    myApikey: null,
    EmberENV: {

    }

    //assign a value to the myApiKey

    if (environment === 'development') {
    // ENV.APP.LOG_RESOLVER = true;

    ENV.myApiKey = process.env.API_KEY;
    }

    }

    请注意 process.env.API_KEY 正在获取我们添加到 .bashrc 的设置并将其分配给 myApiKey .您需要在您的服务器上安装 Nodejs process.env 上类。

    最后在你的 Controller 中访问该变量
    import config from '../config/environment';
    import Ember from 'ember';

    export default Ember.Controller.extend({

    yourKey: config.myApikey,

    });

    就是这样。

    关于ember.js - 如何使用 process.env 将环境变量中的 API key 传递给 Ember CLI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26403334/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com