Ember.js `application name/config/environment的`APP`属性中缺少属性`

Ember.js `application name/config/environment的`APP`属性中缺少属性`,ember.js,ember-cli,Ember.js,Ember Cli,假设这是我的应用程序名/config/environment /* jshint node: true */ module.exports = function(environment) { var ENV = { modulePrefix: 'app-name', environment: environment, rootURL: '/', locationType: 'auto', pageTitle: { separator:

假设这是我的
应用程序名/config/environment

/* jshint node: true */

module.exports = function(environment) {
  var ENV = {
    modulePrefix: 'app-name',
    environment: environment,
    rootURL: '/',
    locationType: 'auto',

    pageTitle: {
      separator: ' - ',
      // we want to append the nested title as suffix
      prepend: false,
      // replace completely replaces the outer title we don't want that
      replace: false,
    },

    EmberENV: {
      FEATURES: {
        // Here you can enable experimental features on an ember canary build
        // e.g. 'with-controller': true
      },
      EXTEND_PROTOTYPES: {
        // Prevent Ember Data from overriding Date.parse.
        Date: false
      }
    },

    APP: {
      // Here you can pass flags/options to your application instance
      // when it is created
    },

    i18n: {
      defaultLocale: 'en',
    },
  };

  if (environment === 'test') {
    // Testem prefers this...
    ENV.locationType = 'none';

    // keep test console output quieter
    ENV.APP.LOG_ACTIVE_GENERATION = false;
    ENV.APP.LOG_VIEW_LOOKUPS = false;

    ENV.APP.rootElement = '#ember-testing';
    ENV.APP.API_HOST = 'http://dev.api.appname.com';
  }
  else if (environment === 'production') {

  }
  else {
    ENV.APP.API_HOST = 'http://dev.api.appname.com';
  }

  return ENV;
};
它几乎是默认生成的,除了在开发和测试模式下的
APP
子属性中有一个
API\u主机

在随机模块中,我这样做

import ENV from 'application-name/config/environment';
console.log(ENV.APP.API_HOST); 
我期望的是将
.APP.API\u HOST
中的值记录到日志中,除非我看到未定义的。。。如果我登录
ENV.APP
这就是我看到的

注意,应用程序名称已被删除

但是,检查全局对象是否有效

console.log(ApplicationName.API_HOST);
现在我不想访问全局对象,因为它有点黑。2017年,我们现在有es模块

我试过的
  • 确保我使用了正确的环境,我们还没有尝试prod,因为我们没有prod构建
  • ,却得到了同样的结果
  • 我确实在Ember slack的帮助频道上问了这个问题,但我在那里没有取得太大的成功
    :/

  • 当ember cli构建您的应用程序时,它会在HTML中的元字段中对配置对象进行url编码,如果您有一名服务人员获取index.HTML并缓存它,那么当您更新
    environment/config.js
    时,它将进入一个新的index.HTML


    防止您看到更改的一件事是,当您的服务人员缓存index.html时,这就是我遇到的问题。

    我注意到您在
    测试环境中添加了值。只需将它们移动到
    开发
    环境。

    对于开发,将执行最后一个else块。我感谢您的输入,Joe,但是@kumkanillam是正确的。正如我在回答中提到的,它最终也是我的服务人员配置