webpack编译打包,如何解决依赖的依赖 is not a constructor

这是ws的依赖文件:

'use strict';

const WebSocket = require('./lib/WebSocket');

WebSocket.Server = require('./lib/WebSocketServer');
WebSocket.Receiver = require('./lib/Receiver');
WebSocket.Sender = require('./lib/Sender');

module.exports = WebSocket;

这是 引入 ws的 依赖stream.js:
这里编译后报错:
TypeError: WS is not a constructor

var WS = require('ws')

 if (typeof target === 'object') {
    socket = target
  // otherwise make a new one
  } else {
    // special constructor treatment for native websockets in browsers, see
    // https://github.com/maxogden/websocket-stream/issues/82
    if (isNative && isBrowser) {
      socket = new WS(target, protocols)
    } else {
      socket = new WS(target, protocols, options)
    }

    socket.binaryType = 'arraybuffer'
  }

但是 websocket 的依赖也有 构造函数啊。

clipboard.png

而 stream.js 也被其他引用。但是在stream.js 就报错了。

项目使用了webpack4以上,以及babel都用到。
要是这是 es6 转 es5的问题吗?我的配置如下:

{
  "presets":["@babel/preset-env"]
}
  "devDependencies": {
    "@babel/core": "^7.4.4",
    "@babel/preset-env": "^7.4.4",
    "babel-loader": "^8.0.6",
    "babel-polyfill": "^6.26.0"
  },

不得其解。求解求解....

阅读 7.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进