ember-cli在——environment=production上失败(未捕获的错误:Could not find



我正在使用ember-cli,在选择生产环境时遇到了问题。具体来说,当我运行ember serve --environment=development时,一切都正常,而当我运行ember serve --environment=production时,我得到一个空白页面。在控制台中,我看到:

  • Uncaught TypeError: undefined is not a function
  • 未捕获的错误:无法找到模块simple-auth/authenticators/base

所有其他条件都是相同的,并且所有依赖项都是最新的。我是一个完全的新手,所以我甚至不知道从哪里开始如何调试:是烬吗?ember-cli吗?西兰花吗?

我有完全相同的问题,和James_1x0是正确的,这是一个西兰花的问题。调试完成后,在"Ember.handlebars.compile"中出现了"undefined"错误,这导致了其他的研究。看起来,在生产环境中,"handlebars.js"在ember-cli构建过程中被"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';
}
将"handlebars.runtime.js"替换为"handlebars.js"。这也为我解决了这个问题。它确实有缺点,整个车把文件被部署,但它现在是一个解决方案,直到问题得到解决。

解决方案在Ember CLI网站上提到:

这在某种程度上是不标准和不鼓励的,但是假设由于您的应用程序中的需求,您甚至需要在生产环境中使用完整版本的Handlebars。

基本上,您可以将vendorFiles选项传递给EmberApp实例,这将强制CLI包含完整版本的Handlebars。

明确要求handlebars.js的例子,在Brocfile.js:

var app = new EmberApp({
  vendorFiles: {
    'handlebars.js': {
      production: 'bower_components/handlebars/handlebars.js'
    }
  }
});

这是解决这个问题的推荐方法(在GitHub上讨论)。

相关内容

  • 没有找到相关文章