有没有安全的方法来'重新路由'requirejs 1.0模块依赖?

时间:2013-12-09 19:54:59

标签: javascript requirejs

在RequireJS 1.0 api中,在某种情况下,你有'模块B'依赖于'模块A','模块A'取决于你不希望'模块B'的某些'模块C'知道,是将“模块C”指向无操作模块的某个路径的最佳选择吗?

// with RequireJS 1.0 api:

define('ModuleA', ['ModuleC'], function(){
  // Module C makes sense here, but down in the definition for Module B,
  // Module C is dangerous.
})

// 2. here's an approach that comes to mind, but I think it's nasty:
require.config({
  paths: {
    'ModuleC': '/path/to/no-op/module'
  }
})

define('ModuleB', ['ModuleA'], function(){
  // 1. how do I depend on 'ModuleA' without depending on 'ModuleC'?
})

基本上,我想重新使用模块B中模块A的一些代码,但不包括模块C,它试图调用此环境中不存在的代码。

1 个答案:

答案 0 :(得分:0)

ModuleB无法了解ModuleC(除非ModuleA以某种方式使其可访问)。但是,如果ModuleB需要ModuleAModuleA需要ModuleC,那么,是的,ModuleB 需要加载{{1} } ModuleC,即使ModuleA无法使用它。

确保您的相关模块正确导出并作为已定义模块的参数传递,因此只能在您定义的模块中访问它。范围:

ModuleB