我们如何在浏览器中导入stompjs?或者类似stompjs的东西?

jha*_*amm 6 stompjs

我正在尝试按照 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语句进入浏览器端代码?

其次,怎么进来的教程,他们可以删除stompjsHEAD,并没有在浏览器炸毁,但它确实,当我通过运行"相同"的代码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)


Kre*_*sek 9

似乎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文档中的前端代码.


Syn*_*nox 2

您必须导入"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