我正在使用 ember-cli,但在选择生产环境时遇到了问题。具体来说,当我运行 ember serve --environment=development
时,一切正常,而当我运行 ember serve --environment=production
时,我得到一个空白页面。在控制台中,我看到:
- 未捕获的类型错误:undefined 不是一个函数
- Uncaught Error :找不到模块 simple-auth/authenticators/base
所有其他条件相同,并且所有依赖项都是最新的。我是个菜鸟,所以我什至不知道从哪里开始调试:它是 ember 吗? Ember 客户端?西兰花?任何帮助将不胜感激。
最佳答案
我遇到了完全相同的问题,James_1x0 是正确的,这是一个西兰花问题。 调试后,“Ember.handlebars.compile”出现“undefined”错误,这导致了其他研究。 看起来,在生产环境中,在 ember-cli 构建过程中,“handlebars.js”被替换为“handlebars.runtime.js”,这对西兰花来说似乎是一个问题。
其他开发者也有同样的问题,但也有其他库: https://github.com/stefanpenner/ember-cli/pull/675#issuecomment-47431195
这里的解决方案是添加:
var index = app.legacyFilesToAppend.indexOf('bower_components/handlebars/handlebars.runtime.js');
if(index) {
app.legacyFilesToAppend[index] = 'bower_components/handlebars/handlebars.js';
}
进入您的 Brocfile.js,用“handlebars.js”替换“handlebars.runtime.js”。 这也为我解决了这个问题。 它确实有一个缺点,即部署了整个 handlebars 文件,但它现在是一个解决方法,直到问题得到解决。
关于ember.js - ember-cli 在 --environment=production 上失败(未捕获错误 : Could not find module),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25018160/