我正在寻找一个javascript框架,可以帮助我异步加载javascript,这样我就可以制作控件,我可以在应用程序之间共享&确保不同的控件共享其引用的框架,而主应用程序不需要知道需要哪些库。我一直在看requirejs并且我非常喜欢它,但是我发现当我将它添加到依赖于KnockoutJS的应用程序时,“ko”全局不再被声明了。
据推测,这是因为KnockoutJS决定我有一个AMD,因此它只留下了全局命名空间。如果我用RequireJS加载它,我会很好,但是如果它是由脚本标签加载的那么不是很好。显而易见的答案是不要以这种方式加载它,但是如果现有的应用程序还没有为AMD编写并且我想添加requirejs来促进我的共享控件并且它破坏了现有应用程序,则会出现问题。
我可能会做一个解决方法,将敲击放回全局命名空间,但我猜测敲击不仅仅是这种行为,而是我发现的第一个测试。
我非常愿意使用shim将非AMD暴露给AMD方法,但我不想在页面中添加RequireJS影响其他没有明确引用它的代码。有没有类似于jQuery的RequireJS无冲突模式,或者类似的框架,它不会产生不良的副作用?