У меня проблема при запуске моего приложения ember-cli в режиме производства. Когда я ссылаюсь на App.deferReadiness()
, он действует так, как будто приложение не определено.Ссылка на приложение в ember-cli
приложение/app.coffee
`import Ember from 'ember'`
`import Resolver from 'ember/resolver'`
`import loadInitializers from 'ember/load-initializers'`
`import config from './config/environment'`
App = Ember.Application.extend
modulePrefix: config.modulePrefix
podModulePrefix: config.podModulePrefix
Resolver: Resolver
ready: ->
Ember.debug "Total setup time: #{(new Date).valueOf() - startTime.valueOf()}ms"
loadInitializers(App, config.modulePrefix)
`export default App`
приложение/Инициализаторы/facebook.coffee
`import App from 'my_app/app'`
initialize = (container, application) ->
# Results in: t.default.deferReadiness is not a function
App.deferReadiness()
# omitted code
Это прекрасно работает в режиме разработки, но что-то в производстве. Есть идеи?
Я думаю, что это был плохой пример, поскольку «приложение» является вторым аргументом в facebook.coffee initialize. Когда/если я придумаю лучший пример, я обновлю свой вопрос. –
Вы случайно получаете доступ к приложению с тем же именем, что и его глобальное имя? Например. если у вас открыто приложение, и вы заходите в консоль и набираете «MyApp», он даст вам глобальную переменную, которая является экземпляром вашего приложения. Когда вы переходите к производству, это больше не доступно, поскольку все минитируется/сжимается, и это либо превращается в глобальную переменную с одной буквой, либо, возможно, код Ember вообще не делает ее доступной в сборке. Я просто пытался экспортировать приложение из «my_app/app», и у него нет deferReadiness функция вообще - и ее также класс не экземпляр. – jmurphyau
@jmurphyau - это то, что я обнаружил. Я решил свою проблему по-другому. Я удалил все ссылки на 'App'. Области, которые сталкивались с проблемой, были в инициализаторах. При определении инициализатора два аргумента даются инициализатору 'container' и' application'. Это все, что мне действительно нужно. Как только я начал использовать их, я смог избавиться от всех ссылок «App». –