Requirejs SPA使用BundleConfig和Require.js

Requirejs SPA使用BundleConfig和Require.js,requirejs,bundle,amd,single-page-application,Requirejs,Bundle,Amd,Single Page Application,如果您能在SPA中合理解释BundleConfig和Require.js的用法,我将不胜感激。启动应用程序时,如何选择BundleConfig应加载哪些脚本?哪些脚本不应在BundleConfig中调用并通过AMD选择性加载?BundleConfig加载后,是否必须在require.js的DEFINE语句中再次调用它们 尽管我可能会搜索,但我还是找不到一个简单的解释 谢谢 BundleConfig将帮助您在一次行程中将捆绑包中的所有脚本一起发送到客户端。这就减轻了require.js的负担或工作

如果您能在SPA中合理解释BundleConfig和Require.js的用法,我将不胜感激。启动应用程序时,如何选择BundleConfig应加载哪些脚本?哪些脚本不应在BundleConfig中调用并通过AMD选择性加载?BundleConfig加载后,是否必须在require.js的DEFINE语句中再次调用它们

尽管我可能会搜索,但我还是找不到一个简单的解释


谢谢

BundleConfig将帮助您在一次行程中将捆绑包中的所有脚本一起发送到客户端。这就减轻了require.js的负担或工作。我经常这样做的第三方脚本,因为它很可能是我需要他们所有的客户端立即无论如何

然后,我可以选择使用require.js根据需要加载脚本(因此是AMD),也可以预先将它们打包

不过,Require并不只是异步加载。它还处理依赖项解析。对我来说,这是更重要的部分。在我使用模块A之前,它确保,如果它依赖于B,它依赖于C,它依赖于D,它首先被解析。因此,它们被加载并按正确的顺序运行


因此,无论您是否使用捆绑,require.js依赖项方面都非常有价值。

感谢您的回复,John。我想我正在尝试制定一个加载脚本的好策略。例如,在您的CCJS Scratch项目中,您决定在BundleConfig中加载knockout和breeze(在q之后)。但是,您决定根据需要加载durandal。你为什么做出这样的决定?除了durandal,所有的第三方脚本都打包了。我就是这样滚的。然后根据需要或在自己的捆绑包中创建自己的脚本。Durandal I允许处理自身,因为它会根据需要加载自身(除非您使用optimizer.exe)