websocket - 使用 websocket 的 Gatsby 生产构建警告
问题描述
我在我的 Gatsby 网站上实现了一个 websocket(我正在使用 Websocket-Node 包,socket.io 不是一个选项),它可以工作,但是当我运行build
命令时,我收到以下警告
warn WebpackError: Unsafe builtin usage fs.readdirSync
at test-project/node_modules/node-gyp-build/index.js:73:1
at test-project/node_modules/node-gyp-build/index.js:64:1
at test-project/node_modules/node-gyp-build/index.js:40:1
at test-project/node_modules/node-gyp-build/index.js:21:1
at test-project/node_modules/bufferutil/index.js:4:44
at test-project/webpack/bootstrap:19:1
at test-project/node_modules/websocket/lib/WebSocketFrame.js:17:18
at test-project/webpack/bootstrap:19:1
at test-project/node_modules/websocket/lib/WebSocketConnection.js:20:22
at test-project/webpack/bootstrap:19:1
at test-project/node_modules/websocket/lib/WebSocketRequest.js:21:27
at test-project/webpack/bootstrap:19:1
at test-project/node_modules/websocket/lib/WebSocketServer.js:22:24
at test-project/webpack/bootstrap:19:1
at test-project/node_modules/websocket/lib/websocket.js:2:22
at test-project/webpack/bootstrap:19:1
71 | function readdirSync (dir) {
72 | try {
> 73 | return fs.readdirSync(dir)
| ^
74 | } catch (err) {
75 | return []
76 | }
下面这个
warn WebpackError: Unsafe builtin usage http.request
at test-project/node_modules/websocket/lib/WebSocketClient.js:254:1
at test-project/node_modules/websocket/lib/W3CWebSocket.js:62:1
at test-project/src/utils/hub.js:6:16
at test-project/webpack/bootstrap:19:1
at test-project/webpack/bootstrap:19:1
at test-project/webpack/bootstrap:19:1
at test-project/webpack/bootstrap:19:1
at test-project/webpack/bootstrap:19:1
at test-project/.cache/_this_is_virtual_fs_path_/$virtual/sync-requires.js:7:49
at test-project/webpack/bootstrap:19:1
at test-project/.cache/static-entry.js:11:22
252 | }
253 |
> 254 | var req = this._req = (this.secure ? https : http).request(requestOptions);
| ^
255 | req.on('upgrade', function handleRequestUpgrade(response, socket, head) {
256 | self._req = null;
257 | req.removeListener('error', handleRequestError);
我尝试使用 gatsby 推荐的解决方案,包括使用@loadable/component
库或在文件中添加虚拟组件配置,gatsby-config.js
但警告仍然存在。