如何使用 requirejs 导入 strophe?
How to import strophe using requirejs?
我正在尝试使用 strophe.js with relay-starter-kit。我检查了 relay-starter-kit
,将 "strophe": "^1.2.2"
添加到 package.json
和 运行 npm install
。
我找不到如何在不出错的情况下导入 strophe。如果我只是尝试 import Strophe from 'strophe';
,我会得到 webpack 无法解析的错误 strophe-polyfill
。我为指向主 strophe.js 文件的那个添加了一个解析别名,但这没有帮助(我只收到一条控制台消息 Uncaught ReferenceError: Strophe is not defined
)。
看起来 strophe 有一些奇怪的模块系统(它在 github 中提到了 AMD,但我认为这意味着我可以 require
它,但显然不是)。我见过的所有示例都将其导入 HTML 文件并使全局命名空间混乱。我需要在 React 中使用它,所以我认为这行不通。
如何导入 strophe 以在我的 es6 文件中使用?
因为我在这上面浪费了很多时间,所以这里是答案:
在 HTML 文件中包含 strophe:
编辑 server.js
使 webpack 将 strophe 公开为静态路径:
app.use('/node_modules/strophe', express.static('node_modules/strophe'));
在react组件中,不需要导入strophe,因为它现在是全局可用的。而只是连接,例如:
var connection = new Strophe.Connection("ws://" + server + ":5280/websocket/");
尝试使用 import * as XMPP from strophe.js
然后调用
var connection = new XMPP.Strophe.Connection(BOSH_SERVICE)
连接服务器
我正在尝试使用 strophe.js with relay-starter-kit。我检查了 relay-starter-kit
,将 "strophe": "^1.2.2"
添加到 package.json
和 运行 npm install
。
我找不到如何在不出错的情况下导入 strophe。如果我只是尝试 import Strophe from 'strophe';
,我会得到 webpack 无法解析的错误 strophe-polyfill
。我为指向主 strophe.js 文件的那个添加了一个解析别名,但这没有帮助(我只收到一条控制台消息 Uncaught ReferenceError: Strophe is not defined
)。
看起来 strophe 有一些奇怪的模块系统(它在 github 中提到了 AMD,但我认为这意味着我可以 require
它,但显然不是)。我见过的所有示例都将其导入 HTML 文件并使全局命名空间混乱。我需要在 React 中使用它,所以我认为这行不通。
如何导入 strophe 以在我的 es6 文件中使用?
因为我在这上面浪费了很多时间,所以这里是答案:
在 HTML 文件中包含 strophe:
编辑
server.js
使 webpack 将 strophe 公开为静态路径:app.use('/node_modules/strophe', express.static('node_modules/strophe'));
在react组件中,不需要导入strophe,因为它现在是全局可用的。而只是连接,例如:
var connection = new Strophe.Connection("ws://" + server + ":5280/websocket/");
尝试使用 import * as XMPP from strophe.js
然后调用
var connection = new XMPP.Strophe.Connection(BOSH_SERVICE)
连接服务器