4

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

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

或者可能是其他方式?目前它在抱怨

原因是我们有一些外部库对 'knockout' 有外部依赖关系,而我们使用 'ko'

4

1 回答 1

5

听起来地图配置是一种更好的方法。如果您的模块需要 'ko' 而其他模块需要 'knockout',那么只需将模块的 '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;
});
于 2013-05-30T13:36:17.473 回答