我正在编写一个可在网络浏览器中运行的打字稿代码,并将使用Node.JS进行测试。
我的客户端代码如下所示。
import * as WebSocket from 'ws';
export class SomeClient {
constructor(url) {
this.ws = new WebSocket(url);
}
send(data: any) {
this.ws.send(data);
}
}
使用mocha / chai编写单元测试代码没有问题。
但是,尝试捆绑此代码,browserify包含所有'ws'节点模块,输出文件的大小几乎为100kb。如果我删除了导入'ws'语句,则bundle文件大小缩小不到1kb。但是,在这种情况下,Node.JS测试抱怨'WebSocket未定义'错误。
我认为,这是因为WebSocket本身支持Web浏览器,但Node.JS不支持,外部'ws'模块需要正常运行。
如何制作具有最小尺寸的网络浏览器,但可以在Node.JS中使用
答案 0 :(得分:1)
npm i isomorphic-ws -s
npm install --save universal-websocket-client