我正在尝试按照本 Spring
教程使用websockets
.我webpack
用来捆绑我的代码并将babel
其转换ES6
.我试图sockjs
用一个正常的import
声明来引入.
import SockJS from 'sockjs'
Run Code Online (Sandbox Code Playgroud)
但是在webpack
运行时,我会丢失模块错误,
ERROR in ./~/stompjs/lib/stomp-node.js
Module not found: Error: Cannot resolve module 'net' in /Users/name/Developer/cubs-stack-4/cubs-webapp/node_modules/stompjs/lib
@ ./~/stompjs/lib/stomp-node.js 14:8-22
ERROR in ./~/websocket/package.json
Module parse failed: /Users/name/Developer/cubs-stack-4/cubs-webapp/node_modules/websocket/package.json Line 2: Unexpected token :
You may need an appropriate loader to handle this file type.
| {
| "_args": [
| [
| "websocket@latest",
@ ./~/websocket/lib/version.js 1:17-43
Run Code Online (Sandbox Code Playgroud)
主要是因为它有望继续运行Node
.
我有两个问题.
首先,如何stompjs
使用import/require
语句进入浏览器端代码?
其次,怎么进来的教程,他们可以删除stompjs
的HEAD
,并没有在浏览器炸毁,但它确实,当我通过运行"相同"的代码webpack
?
mas*_*jon 12
安装“net”依赖解决了我的问题
npm i sockjs-client --save
npm i stompjs --save
npm i net
Run Code Online (Sandbox Code Playgroud)
并像这样导入
import * as SockJS from 'sockjs-client';
import * as Stomp from 'stompjs';
Run Code Online (Sandbox Code Playgroud)
似乎Spring的文档中引用的stompjs库不再开发,但是有一个fork维护,并提供了如何将它添加到您的项目中的说明:https://github.com/stomp-js/stomp-websocket
以下是我用来解决此问题以及在Spring后端的带有websockets的React应用程序中工作的步骤:
# Add sockjs and stompjs dependencies
npm install sockjs-client --save
npm install @stomp/stompjs --save
Run Code Online (Sandbox Code Playgroud)
然后将其导入您的应用:
import SockJS from "sockjs-client"
import Stomp from "@stomp/stompjs"
Run Code Online (Sandbox Code Playgroud)
您现在应该能够成功使用Spring文档中的前端代码.
您必须导入"sockjs-client": "^1.0.3"
package.json。
然后你可以导入它
import SockJS from 'sockjs-client'
Run Code Online (Sandbox Code Playgroud)
我的webpack.config.js
包含图书馆'sockjs-client'
。另外,我添加了以下conf,以忽略丢失的net
模块。
node: {
net: 'empty',
tls: 'empty',
dns: 'empty'
}
Run Code Online (Sandbox Code Playgroud)
来源:https ://github.com/hapijs/joi/issues/665#issuecomment-113713020
归档时间: |
|
查看次数: |
6751 次 |
最近记录: |