Javascript 通过AMD装载微风

Javascript 通过AMD装载微风,javascript,knockout.js,requirejs,breeze,amd,Javascript,Knockout.js,Requirejs,Breeze,Amd,我试着将Breeze与:TypeScript、AMD模块、requirejs、knockout一起使用 查看Breeze代码,我可以看到它需要通过名称“ko”进行敲除。但是,还有其他组件需要通过名称“knockout”进行敲除 因此,如果我使用路径“knockout”为requirejs创建一个配置,加载程序将抱怨“ko”尚未加载。如果我手动更改Breeze代码,那么用“knockout”替换“ko”就可以了 可以做些什么,所以不需要更改Breeze代码?您可以使用将Breeze为“ko”发出的

我试着将Breeze与:TypeScript、AMD模块、requirejs、knockout一起使用

查看Breeze代码,我可以看到它需要通过名称“ko”进行敲除。但是,还有其他组件需要通过名称“knockout”进行敲除

因此,如果我使用路径“knockout”为requirejs创建一个配置,加载程序将抱怨“ko”尚未加载。如果我手动更改Breeze代码,那么用“knockout”替换“ko”就可以了

可以做些什么,所以不需要更改Breeze代码?

您可以使用将Breeze为“ko”发出的任何请求重新映射为“knockout”。大概是这样的:

require.config({
    //
    // your other config (e.g. paths)
    //

    // remap requests for 'ko'
    map: {
        'breeze': {
            'ko': 'knockout'
        }
    }
});
或者,如果您想映射来自所有模块的“ko”请求,可以使用*通配符:

map: {
    '*': {
        'ko': 'knockout'
    }
}
您可以使用将breeze对“ko”提出的任何请求重新映射为“knockout”。大概是这样的:

require.config({
    //
    // your other config (e.g. paths)
    //

    // remap requests for 'ko'
    map: {
        'breeze': {
            'ko': 'knockout'
        }
    }
});
或者,如果您想映射来自所有模块的“ko”请求,可以使用*通配符:

map: {
    '*': {
        'ko': 'knockout'
    }
}

谢谢。映射配置是一个很好的提示。我不得不稍微修改一下代码:使用“breeze”作为ID不起作用,但“*”起作用。@mgs谢谢,在答案中添加了这一点,以便于其他人看到它。非常感谢。映射配置是一个很好的提示。我不得不稍微修改一下代码:使用“breeze”作为ID不起作用,但“*”起作用。@mgs谢谢,在答案中添加了这一点,以便其他人更容易看到它。