Ember CLI に Bower 経由で SockJS を含めようと必死です。私は可能な限りドキュメントをフォローしました。これらはほとんどうまくいくように見えた手順です:
"sockjs-client": "0.3.4"
に追加bower.json
- 走った
bower install
に以下を追加
Brocfile.js
app.import('vendor/sockjs-client/lib/index.js', { 'sockjs': [ 'sockjs' ] });
import { SockJS as SockJS } from 'sockjs';
私のモジュールに追加されました。他にもいろいろな組み合わせを試してみimport SockJS from 'sockjs';
た...
これは少なくともコンパイルされ、ember server
エラーなしで実行されるようです。ただし、ブラウザーでページを開くとすぐに、次のエラーが表示されます。
Uncaught ReferenceError: SockJS is not defined
エラーを示す作成されたソースは、次のようになります。
SockJS = (function(){
var _document = document;
var _window = window;
var utils = {};
<!-- include lib/reventtarget.js -->
<!-- include lib/simpleevent.js -->
<!-- include lib/eventemitter.js -->
<!-- include lib/utils.js -->
<!-- include lib/dom.js -->
<!-- include lib/dom2.js -->
<!-- include lib/sockjs.js -->
<!-- include lib/trans-websocket.js -->
<!-- include lib/trans-sender.js -->
<!-- include lib/trans-jsonp-receiver.js -->
<!-- include lib/trans-jsonp-polling.js -->
<!-- include lib/trans-xhr.js -->
<!-- include lib/trans-iframe.js -->
<!-- include lib/trans-iframe-within.js -->
<!-- include lib/info.js -->
<!-- include lib/trans-iframe-eventsource.js -->
<!-- include lib/trans-iframe-xhr-polling.js -->
<!-- include lib/trans-iframe-htmlfile.js -->
<!-- include lib/trans-polling.js -->
<!-- include lib/trans-receiver-eventsource.js -->
<!-- include lib/trans-receiver-htmlfile.js -->
<!-- include lib/trans-receiver-xhr.js -->
<!-- include lib/test-hooks.js -->
return SockJS;
})();
Ember CLIにSockJSを含める正しい方法は何ですか?
編集
さらに試行錯誤した後、ブラウザの観点から次のように動作するようになりました。
Brocoli.js:
app.import('vendor/bower-sockjs-client/sockjs.js', {
'sockjs-client': ['sockjs-client']
});
module.exports = app.toTree();
bower.json:
"dependencies": {
"handlebars": "~1.3.0",
"jquery": "^1.11.1",
"qunit": "~1.12.0",
"ember-qunit": "~0.1.5",
"ember": "1.5.1",
"ember-resolver": "~0.1.1",
"loader": "stefanpenner/loader.js#1.0.0",
"ember-cli-shims": "stefanpenner/ember-cli-shims#0.0.2",
"ember-load-initializers": "stefanpenner/ember-load-initializers#0.0.2",
"ember-qunit-notifications": "^0.0.1",
"ember-cli-test-loader": "rjackson/ember-cli-test-loader#0.0.2",
"bower-sockjs-client": "0.3.4"
}
また、モジュール内ではまったくインポートされません。
これにより、Ember CLI は多くの不平を言います:'SockJS' is not defined.
ただし、少なくとも今のところは機能します。私がやっていることに何か問題がありますか、それとも Ember CLI のバグですか?