2

jenkins を介して Ember CLI アプリをデプロイし、nginx を使用して公開しています。これはジェンキンスビルドスクリプトによるものです:

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

2 つのエラーが関連していると推測していますが、何が原因なのかわかりません。同様の質問と思われるものに対してこの回答を試しましたが、うまくいきません。私の開発環境ではすべてが正常に動作し、疑わしいものは何も見られませんBrocfile.js

4

3 に答える 3

3

私が使用しているサードパーティのライブラリの 1 つにも同じ問題があります。

私はこのソリューションを使用しています: https://github.com/rwjblue/_____ember-cli-test/commit/1a26911def6f04a4badee94c8a62d8205258867b

私のBrocfile.js差分:

-var app = new EmberApp();
+var app = new EmberApp({
+  vendorFiles: {
+    'handlebars.js': {
+      production: 'bower_components/handlebars/handlebars.js'
+    }
+  }
+});
于 2014-10-10T04:42:25.697 に答える
1

プロダクションでは、 を含まない handlebars-runtime を使用していますEmber.Handlebars.compile。その理由は、本番環境で使用する方が小さく、ember-cli が自動的に行うプリコンパイルの方が効果的だからです。

ここにあるPRに関する多くの議論

于 2014-10-09T01:31:49.097 に答える
0

ember パッケージのブートストラップでも同じ問題が発生しました。(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'
    }
   }
});
于 2014-10-10T07:47:20.977 に答える