2014-10-08 38 views
2

我正在通过jenkins部署Ember CLI应用程序并使用nginx发布它。下面是詹金斯构建脚本:Ember CLI在生产中失败

npm install 
bower install 
node_modules/ember-cli/bin/ember build --environment=production 

nginx的配置只是指导sub.domain.comjenkins\jobs\lastStable\archive\dist。这工作正常,但是当我去的页面,它是空白并在控制台输出如下:

TypeError: Ember.Handlebars.compile is not a function vendor-92ab6507ac60a5bf7c6819aa8fc418d6.js:18 
ReferenceError: Swag is not defined spa-client-9b01c6124f5b2a4cd2e95b62be7f5ba5.js:1 

我猜,这两个错误是相关的,但我想不出是什么原因导致他们。我已经尝试this答案似乎是一个类似的问题,但它不适合我。在我的开发环境中,一切正常,我在Brocfile.js里看不到任何可疑的东西。

+0

我在生产中遇到了类似的问题。就我而言,我有一个组件,其布局定义为“布局:Ember.Handlebars.complie('....')”。但后来我删除了布局部分,然后我为组件本身创建了一个单独的hbs文件,至少Ember.Handlebars.compile不是函数错误消失了。 – 2014-10-08 19:48:21

回答

1

生产使用不包括Ember.Handlebars.compile的车把运行系统。原因是在生产中使用它更小,并且更有效地预编译哪些ember-cli会自动为您执行。

很多讨论的PR found here

0

我遇到同样的问题与引导的余烬包。临时解决方案(来自GH)包括生产中的整个handlebars.js文件:

var fileMover = require('broccoli-file-mover'); 

var vendorTree = fileMover('vendor', { 
    files: { 
     'handlebars/handlebars.js': 'handlebars/handlbars.runtime.js' 
    } 
}); 

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