【发布时间】:2018-07-11 07:06:16
【问题描述】:
我正在编写一个可以在网络浏览器中运行并使用 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。如果我删除 import 'ws' 语句,捆绑文件大小会缩小到 1kb 以下。但是,在这种情况下,Node.JS 测试会报错“未定义 WebSocket”。
我认为,这是因为 WebSocket 在 Web 浏览器中本机支持,但在 Node.JS 中不支持,并且需要外部“ws”模块才能正常运行。
我怎样才能制作一个最小尺寸的 web 浏览器但可以在 Node.JS 中使用的包???
【问题讨论】:
-
您需要制作单独的捆绑包或配置 Browserify 以跳过它。
-
能不能给我详细点??
标签: node.js typescript webpack websocket browserify