Angular 6 - browser-crypto.js:3 Uncaught ReferenceError: global is not defined
Posted
技术标签:
【中文标题】Angular 6 - browser-crypto.js:3 Uncaught ReferenceError: global is not defined【英文标题】: 【发布时间】:2018-12-25 02:00:54 【问题描述】:我正在实现 socketjs。但是我遇到了以下错误。
下面是我正在使用的 socket 和 stomp 包。
import * as SockJS from 'sockjs-client';
import * as Stomp from 'stompjs/lib/stomp.js';
提前致谢。
这是我的角度代码-
import * as Socket from 'socket.io-client';
import * as Stomp from 'stompjs/lib/stomp.js';
initializeWebSocketConnection2()
let ws = new Socket(this.serverUrl);
this.stompClient = Stomp.over(ws);
let that = this;
this.stompClient.connect(, function(frame)
that.stompClient.subscribe("/test", function(message)
if(message.body)
console.log(message.body);
window.location.reload();
);
that.stompClient.subscribe("/operation", function(message)
if(message.body)
console.log(message.body);
window.location.reload();
);
);
【问题讨论】:
【参考方案1】:在 index.html 的 head 中添加以下 sn-p 解决了我的问题 -
<script type="application/javascript">
var global = window;
</script>
参考。 https://github.com/stomp-js/ng2-stompjs/issues/70
【讨论】:
【参考方案2】:添加以下代码对我有用
<script>
var global = window; // fix global is undefined in socketjs-client
</script>
【讨论】:
【参考方案3】:在你的 polyfills.ts 中添加这个
(window as any).global = window
首先你需要通过打字安装socket-client
npm install --save @types/socket.io
然后你可以像这样在你的组件或服务中导入socket.io-client
import * as Socket from 'socket.io-client';
像这样更改你的代码
let ws = Socket(this.serverUrl);
【讨论】:
@Challappan - 相同的错误 Uncaught ReferenceError: global is not defined at Object../node_modules/socket.io-parser/binary.js (binary.js:10) at webpack_require (bootstrap:76) 在 Object../node_modules/socket.io-parser/index.js (index.js:9) 在 webpack_require (bootstrap:76) 在 Object../node_modules /socket.io-client/lib/index.js (index.js:7) (window as any).global = window;将此添加到您的代码中并立即检查 让我们continue this discussion in chat。window as any).global = window;
in polyfills.ts 解决了我的问题github.com/angular/angular-cli/issues/…
(window as any).global = window;在我的 polyfill.ts 底部也解决了我出现的这个问题,谢谢!以上是关于Angular 6 - browser-crypto.js:3 Uncaught ReferenceError: global is not defined的主要内容,如果未能解决你的问题,请参考以下文章
Angular JS - 6 - Angular JS 常用指令
如何在 Angular 6 中使用 angular-timelinejs3?