我正在尝试将strophe.js与relay-starter-kit一起使用。我检查了relay-starter-kit
,将"strophe": "^1.2.2"
添加到package.json
并运行npm install
。
我无法找到如何导入strophe而不会出错。如果我只是尝试import Strophe from 'strophe';
,我会收到网络包无法解决的错误strophe-polyfill
。我为指向主strophe.js文件添加了一个解析别名,但这没有帮助(我只是得到一个控制台消息Uncaught ReferenceError: Strophe is not defined
)。
看起来strophe有一些奇怪的模块系统(它在github中提及AMD,但我认为这意味着我只能require
它,但显然不是)。我见过的所有示例都将它导入HTML文件并使全局命名空间混乱。我需要从反应中使用它,所以我认为这不会起作用。
如何导入strophe以在我的es6文件中使用?
答案 0 :(得分:4)
由于我浪费了几个小时的生命,这就是答案:
在HTML文件中包含strophe:
编辑server.js
以使webpack公开strophe为静态路径:
app.use('/ node_modules / strophe',express.static('node_modules / strophe'));
在反应组件中,没有必要导入strophe,因为它现在全局可用。而只需连接,例如:
var connection = new Strophe.Connection(“ws://”+ server +“:5280 / websocket /”);
答案 1 :(得分:0)
尝试使用int ft_putchar(char c);
void top_bottom(int n){
int i = 0;
ft_putchar('A');
while(i < n - 2){
ft_putchar('B');
i++;
}
ft_putchar('C');
ft_putchar('\n');
}
void rush(int x, int y){
if(x > 1 && y > 1) {
int j, i;
j = 0;
i = 0;
top_bottom(x);
while (i < y - 2) {
ft_putchar('B');
while (j < x - 2){
ft_putchar(' ');
j++;
}
j = 0;
ft_putchar('B');
ft_putchar('\n');
i++;
}
top_bottom(x);
}
if(x < 1 || y < 1){
return ;
}
if(x == 1 && y == 1){
ft_putchar('A');
ft_putchar('\n');
}
if(x > 1 && y == 1){
top_bottom_03(x);
}
if(x == 1 && y > 1){
int i = 0;
ft_putchar('A');
ft_putchar('\n');
while(i < y - 2){
ft_putchar('B');
ft_putchar('\n');
i++;
}
ft_putchar('A');
ft_putchar('\n');
}
}
然后调用
import * as XMPP from strophe.js
连接服务器