javascript - 使用 __webpack_require__ 语法在生成的 js 中无法解析 WebPack 依赖项
问题描述
TL;博士
- 我
ts-loader
用于编译 TypeScript => JavaScript const WebSocket = require('ws');
我在未编译的打字稿代码中有依赖项- 它被编译到
var WebSocket = __webpack_require__(333);
我的 js 输出文件中 - 这会导致错误!
- 如果我在生成的js文件中手动revert
var WebSocket = __webpack_require__(333);
=>const WebSocket = require('ws');
,就可以避免报错。
因此,我的问题是:
=> 我可以“强制” webpack 编译依赖项const WebSocket = require('ws');
=> const WebSocket = require('ws');
(没有变化)吗?
如果有任何其他方法可以在生成的文件中强制执行这种依赖关系,我当然也很高兴听到其他建议。
长篇故事和背景信息
我正在尝试使用 websockets 设置 angular 6 通用 ssr(服务器端渲染)场景。我使用 webpack 从 typescript => javascript 编译 nodejs 网络服务器。我不断收到错误“ReferenceError:未定义 WebSocket”。经过 2 周的故障排除,我终于发现,nodejs 没有原生 websocket 支持(浏览器有)。所以在添加"ws": "^6.0.0"
到我的 package.json 并将它 ( const WebSocket = require('ws');
) 导入到我的 webpack 编译的 js 文件中之后,我终于让它工作了!但是,如果我将它导入到未编译的 ts 文件中,它将被编译成var WebSocket = __webpack_require__(333);
不起作用。
道歉和免责声明
我还在相应的存储库中打开了问题(https://github.com/angular/universal/issues/1042和https://github.com/ReactiveX/rxjs/issues/3942),但没有人能够帮助我。由于我对 webpack 如何工作的理解非常有限,我的问题可能会产生误导。如果是这种情况,我深表歉意。
解决方案
推荐阅读
- android - 如何在同一 X 轴坐标上获取文本块 [Google Cloud Vision API]
- sql - Azure 基本层 DTU - 基本层 (B DTU) 的不同费率
- python - 尝试解析 JSON 文件时不理解此 TypeError
- html - 使用多个 css 类创建类名不起作用
- vega - 使用在线 Vega 编辑器自定义字体?
- hyperledger-fabric - AWS CloudFormation 启动 Hyperledger Fabric 失败并出现错误:创建失败:[EC2InstanceForDev]
- javascript - 具有更多悬停效果的独特图像
- javascript - Javascript clearInterval 不起作用(没有错误);秒 相同参数的间隔
- html - 使用 Nuxt.js 从单个 HTML 页面预渲染多个页面
- node.js - 如何从 PHP 文件运行 node.js 文件