requirejs多个路径一个库

时间:2013-05-30 09:43:33

标签: javascript requirejs

忽略这可能不是一个好主意的事实是有可能让requirejs使用两个不同的路径引用一个库,即

require.config({
    paths: {
        'ko': '../Lib/knockout-2.1.0.debug',
        'knockout': '../Lib/knockout-2.1.0.debug',
    }
});

或者可能还有其他方式?目前正在抱怨

原因是我们有一些外部库在“淘汰”中具有外部依赖性,因为我们使用'ko'

1 个答案:

答案 0 :(得分:5)

听起来map configuration是一种更好的方法。如果您的模块需要'ko'但其他模块需要'淘汰',那么只需将'ko'映射到模块的'knockout'即可。

require.config({
    paths: {
        'knockout': '../Lib/knockout-2.1.0.debug',
    },
    map: {
        '*': { 'ko': 'knockout' }
    }
});

如果只需要重新映射某些模块名称,请在上例中将“*”替换为模块名称。

或者,如果通过“我们使用'ko'的位置”,你也指window.ko,你可以这样做:

require.config({
    paths: {
        'knockout': '../Lib/knockout-2.1.0.debug',
    }
});

define('ko', ['knockout'], function (punch)
{
  window.ko = punch;
  return punch;
});