如何使用requirejs导入strophe?

时间:2015-08-20 21:50:07

标签: javascript amd webpack strophe

我正在尝试将strophe.jsrelay-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文件中使用?

2 个答案:

答案 0 :(得分:4)

由于我浪费了几个小时的生命,这就是答案:

  1. 在HTML文件中包含strophe:

  2. 编辑server.js以使webpack公开strophe为静态路径:

    app.use('/ node_modules / strophe',express.static('node_modules / strophe'));

  3. 在反应组件中,没有必要导入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连接服务器