处理大型JavaScript应用程序

处理大型JavaScript应用程序,javascript,build,workflow,Javascript,Build,Workflow,我们的文件结构非常好,在单独的文件夹中组织功能。我的问题是,其他人如何处理涉及500多个JavaScript文件的应用程序 我们已经编写了一个maven插件来将这些文件连接在一起(还运行YUI压缩程序)。但是,每次更改都需要3-10秒的编译时间 如果这一步对于组织一个大型应用程序是必要的,那么我觉得一个结构良好的HTML文件,从中提取所有这些资源,每天可以为我节省45分钟。该解决方案可能只是为了用户测试和生产而连接和压缩 对于开发,最好是将它们全部导入HTML文件。它加快了开发过程,也简化了调试

我们的文件结构非常好,在单独的文件夹中组织功能。我的问题是,其他人如何处理涉及500多个JavaScript文件的应用程序

我们已经编写了一个maven插件来将这些文件连接在一起(还运行YUI压缩程序)。但是,每次更改都需要3-10秒的编译时间


如果这一步对于组织一个大型应用程序是必要的,那么我觉得一个结构良好的HTML文件,从中提取所有这些资源,每天可以为我节省45分钟。

该解决方案可能只是为了用户测试和生产而连接和压缩

对于开发,最好是将它们全部导入HTML文件。它加快了开发过程,也简化了调试。它还允许浏览器缓存其中一些文件

如果您不能依赖缓存副本(我认为缓存副本有500个文件,我并不经常使用),则会降低加载时间。

对于我自己来说,通常是监控、测试或页面内服务来协调其他工具包(但没有您的文件数那么多),我的方法是在开发过程中以单个和动态加载的文件为目标。对于测试,我将运行一个构建来压缩和版本各个文件,然后再次测试各个文件,因为根据连接顺序、压缩技术和浏览器的不同,我可能会出现脚本错误,从一个怪物文件中挖掘出来是一件痛苦的事。第三,我将连接在一起并再次测试

在HTML引用中,我将以加载指定依赖项的未压缩文件或复合文件为目标。一个单独的引导文件命名这些依赖项,它们要么包含在复合文件中,要么根据需要动态加载


这样,我就可以添加或更改文件,开始开发和测试,而无需重建。

只需在生产中运行压缩机,就可以节省大量时间。YUI压缩器的速度是出了名的慢,因为它使用Java Rhino解释器来实际解析JavaScript并分析它等等。

您应该考虑使用flash或Silverlight查看LabJS、RequireJS或dojo上的信息。这里有很多复杂的依赖解决方案。谢谢,这里有非常好的提示。我也可以尝试合并一个依赖性解决方案。