0
在生產模式下運行我的ember-cli應用程序時遇到問題。當我參考App.deferReadiness()
它就像App未定義一樣。在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
這個工作在發展模式很好,但事情到了生產。有任何想法嗎?
我認爲這是一個糟糕的例子,因爲'application'是facebook.coffee初始化中的第二個參數。當/如果我想出一個更好的例子,我會更新我的問題。 –
您是否偶然使用與其全球名稱相同的名稱訪問應用程序?例如。如果你已經打開了你的應用程序,然後進入控制檯並輸入'MyApp',它會爲你提供一個全局變量,這是你的應用程序實例 - 當你移動到生產環境時,由於一切都被縮小/壓縮,要麼變成一個單字母的全局變量,要麼Ember代碼可能在生產版本中根本不可用。我剛剛嘗試從'my_app/app'導出應用程序,但它沒有延遲註釋功能在所有 - 它也是一個類不是實例.. – jmurphyau
@jmurphyau,這也是我發現的。我以另一種方式解決了我的問題我刪除了所有對「App」的引用。遇到問題的領域是在初始化程序中。當定義一個初始化器時,兩個參數被賦予初始化器'container'和'application'。這就是我真正需要的。一旦我開始使用這些,我就可以擺脫所有'App'引用。 –