琥珀CLI(amberframework.org) - v0.11.3水晶0.27.0 [c9d1eef8f](2018年11月1日)LLVM:4.0.0默认目标:x86_64的未知-Linux的GNU NPM 3.5.2
我试图实现与水晶郎和Amber插座。我跟着从Amber Docs和Github Amber Readme.指令然而,我收到一个错误。
我正在运行“故宫运行腕表”和“琥珀表”。我可以看到网页浏览器刷新,当我修改main.js.
//main.js
import 'bootstrap';
import $ from 'jquery';
import Amber from 'amber';
let socket = new Amber.Socket('/notification')
socket.connect().then(function() {
let channel = socket.channel('chat_room:hello');
channel.join();
channel.push('message_new', {
message: "Hello Amber from WebSocket Client!"
});
channel.on('message_new', function(payload) {
console.log(payload);
});
});
// Uncaught TypeError: Cannot read property 'Socket' of undefined
// at Module../src/assets/javascripts/main.js (main.js:28)
// at __webpack_require__ (bootstrap:19)
// at Module../config/webpack/entry.js (entry.js:1)
// at __webpack_require__ (bootstrap:19)
// at bootstrap:83
// at bootstrap:83
更新:
检查我发现了源代码后,有2个版本main.js.的引发错误的版本位于“的WebPack://.src/assets/javascripts/main.js”。当我在运行时检查此文件,琥珀无法找到。 “的ReferenceError:琥珀没有定义”的文件的第二版本位于“/dist/main.bundle.js”。我不知道为什么被服务双方的资产。这可能是与故宫的问题吗?
我能找到的Amber Forums答案。这似乎默认功能时的承诺和公关已经取得了被意外打断。我在这里复制jackturnbull的答案。
解决方案1,琥珀进口线更改为:
import * as Amber from 'amber';
方案2:
import { Channel, Socket } from 'amber';
// Then reference as:
let socket = new Socket('/notification');
...