0

我正在尝试从外部 requireJS 应用程序访问 togetherJS ( https://togetherjs.com/docs/contributing.html ) 模块。这似乎是不可能的。

TogetherJSConfig_noAutoStart = true;
var CJS = CJS || {};

CJS.require = require.config({
    paths: {
        togetherjs: 'https://togetherjs.com/togetherjs-min',
        cjs: 'scripts/c'
    }
});

CJS.require(['togetherjs'], function() {
 // not working
 peers = require({context: "togetherjs"})("peers");

 // not working
 // Module name "peers" has not been loaded yet for context: togetherjs. Use require([])
  TogetherJS.require = require.config(TogetherJS.requireConfig);
  TogetherJS.require("peers");
});

如果我不在我的应用程序中使用 requireJS,我可以访问我想要的模块:

  // works if I do not use requireJS in my app. 
  var peers = TogetherJS.require('peers').getAllPeers();

有可能吗,如果有,怎么做?我在任何地方都找不到任何信息。

谢谢

4

1 回答 1

0

我不完全确定您要在这里完成什么。看起来您将 require.js 异步 api 与 node.js 同步 require api 混合在一起。

我认为当您在不指定上下文名称的情况下执行 require.config 时,您正在配置全局 require 上下文。所以调用 CJS.require(..) 应该等同于调用 window.require(..)。

线

peers = require({context: "togetherjs"})("peers");

对我来说看起来很奇怪。通常您会在 require.config 调用中指定上下文名称,而 require(..) 调用的第一个参数将是依赖项列表。此外,您通常还会将回调函数传递给 require(..) 调用。

我希望这些指示可以帮助您(或其他人)更好地熟悉 require.js

于 2015-06-09T07:50:46.427 回答