将JavaScript文件导入一个文件的最佳方法?

时间:2013-01-28 19:57:43

标签: javascript oop

我有一个使用“类”概念的语言编码背景。既然我正在编写JavaScript,我想以类似的方式编写代码,以便我创建的每个面向对象的“类”都是它自己的独立文件。

在其他语言中,我会在类文件的顶部创建import语句,以确保在类文件中使用的其他自定义类,以便将其他自定义类编译为最终的二进制文件。

当然JavaScript不是编译语言;但是,我仍然希望能够在自定义类文件的顶部包含某种“import”语句,这样我就可以确保导入的JS“class”文件可供用户浏览器下载。

如果有一个第三方工具将我所有单独的类文件合并到一个JS文件中,那么浏览器只需要为一个JS文件发出一个HTTP请求,而不是为每个指示JS的多个调用“类”。有没有人知道这样的工具是否存在,它会执行以下操作:

  1. 允许我选择我想要包含在单个JS文件中的JS文件
  2. 通过我在步骤1中选择的文件进行爬行,并在每个自定义“类”文件的顶部找到所有“import”语句。这些“导入”语句可以简单地在第三方识别为导入语句的代码中使用特殊格式的注释。
  3. 第三方将创建单个JS文件,其中包含从步骤1中选择的所有文件以及在步骤2中找到的所有导入文件。
  4. 一些流行的JavaScript框架似乎就是这样做的。例如,jQueryUI允许您通过允许用户检查您要使用的对象来自定义单个jQueryUI源文件的下载。如果取消选中已签出项目所需的元素,则表单会告诉您在继续下载文件之前需要纠正的依赖关系。

    是否有第三方工具允许开发人员使用某种“导入”语句注释来确保将许多依赖的JS文件(以及只有开发人员需要的文件)合并到一个JS文件中?

5 个答案:

答案 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