我有一个使用“类”概念的语言编码背景。既然我正在编写JavaScript,我想以类似的方式编写代码,以便我创建的每个面向对象的“类”都是它自己的独立文件。
在其他语言中,我会在类文件的顶部创建import语句,以确保在类文件中使用的其他自定义类,以便将其他自定义类编译为最终的二进制文件。
当然JavaScript不是编译语言;但是,我仍然希望能够在自定义类文件的顶部包含某种“import”语句,这样我就可以确保导入的JS“class”文件可供用户浏览器下载。
如果有一个第三方工具将我所有单独的类文件合并到一个JS文件中,那么浏览器只需要为一个JS文件发出一个HTTP请求,而不是为每个指示JS的多个调用“类”。有没有人知道这样的工具是否存在,它会执行以下操作:
一些流行的JavaScript框架似乎就是这样做的。例如,jQueryUI允许您通过允许用户检查您要使用的对象来自定义单个jQueryUI源文件的下载。如果取消选中已签出项目所需的元素,则表单会告诉您在继续下载文件之前需要纠正的依赖关系。
是否有第三方工具允许开发人员使用某种“导入”语句注释来确保将许多依赖的JS文件(以及只有开发人员需要的文件)合并到一个JS文件中?
答案 0 :(得分:5)
RequireJS就是为了这个目的而建立的。
答案 1 :(得分:2)
看看Require.js。它允许您以模块化方式导入各种javascript文件,并在它们之间添加所需的依赖项。最后,您可以使用r.js
将它们全部缩小为一个JS文件答案 2 :(得分:1)
一个简单的批处理文件可以为您执行此操作:
@for %i in (classes/*.js) type %i >> build.js
如果您的JS源文件都在一个文件夹中,则此方法效果最佳,此示例假定该文件夹名为classes
。如果您有子文件夹,它会变得有点复杂,但可以应用类似的原则。
答案 3 :(得分:0)
看看GruntJS,JQuery使用它进行构建。如果您不关心HTTP请求,可以使用已经提到的RequireJS,它也有很好的异步方法来加载文件,这可以在某些情况下提高性能。
答案 4 :(得分:0)
查看此课程https://www.youtube.com/watch?v=KnQfGXrRoPM 这允许在类中动态导入。它也允许 用于导入文件夹及其所有子文件夹中的所有类。 它非常简单,因为它只是添加到String的原型函数。 只需添加您将在" com.project.Classfile.js" .import();等类中调用的导入器类。 或" com.project。*" .import()获取所有子类。 叉上 - https://github.com/jleelove/Utils