【问题标题】:Is there a JavaScript equivalent to a Java Jar or .NET DLL?是否有与 Java Jar 或 .NET DLL 等效的 JavaScript?
【发布时间】:2012-03-21 21:15:04
【问题描述】:

JavaScript 新手,想知道是否必须将 所有 JavaScript 作为单独的 .js 文件“部署”,或者是否有办法将多个 JS 文件捆绑/打包为一个组件,例如Java .jar 或 .NET .dll

例如,如果我有一个集合,比如说,30 个 JS 文件组成了一个可重用的 JS 对象和函数库,有没有办法将它们打包为一个可部署的组件,或者我被卡住了复制-n-将所有 30 个文件粘贴到我想使用它们的每个项目中?

这里的标准是什么?提前致谢!

【问题讨论】:

    标签: java javascript .net deployment jar


    【解决方案1】:

    2018 年更新:您可以使用 CommonJS 或 ES 模块,并使用 Browserify、webpack、Parcel 等适当的工具将它们打包。

    当然,JavaScript 不能被编译(在发送到客户端之前);最接近的等价物只是缩小它们,然后将所有文件粘合在一起。为了缩小,我个人喜欢Google Closure Compiler;至于粘合,使用命令行工具很容易做到。例如:

    cat script1.js >> all.js
    cat script2.js >> all.js
    # etc.
    

    【讨论】:

    • 我挑剔的不仅仅是纠正,但现代 JS 解释器实际上是 JIT(即时编译器)。也就是说,在一些初始解析和准备工作之后,它会即时编译成字节码,而不是直接由运行时代码解析、标记和解释。 Python 做了类似的事情,但你实际上可以在运行一次程序后将 Python 保存为二进制文件。
    • @ErikReppen:是的,我的意思是“在它进入浏览器之前”。抱歉,已更新答案。 (是的,这所以吹毛求疵;)
    【解决方案2】:

    如果您打算使用所有文件的所有内容,您可以使用文本编辑器将它们的内容合并到一个 js 文件中。拥有 30 个单独的 .js 文件会减慢页面加载速度,因为必须发出 30 个请求。您可以使用 JavaScript“缩小器”进一步减小文件大小,例如 http://jscompress.com/http://www.minifyjavascript.com/

    【讨论】:

      【解决方案3】:

      是的。

      它叫做namespace
      This 是一个关于它的解释博客。
      This 是一个很好的教程。

      【讨论】:

      • “谷歌搜索”不是答案。请添加示例或说明。
      • 我将删除我的 -1,但请记住,简单地链接到其他资源被认为是错误的答案形式,并且链接可能会失效。 请考虑总结内容、添加示例或添加说明。
      【解决方案4】:

      ...您可以希望的最好的方法是缩小,合并到一个文件中,也许可以为它寻找一个自动构建系统。悬停,当你去构建那个单个文件时,要非常小心,因为压缩/缩小过程肯定会破坏东西。考虑通过 jsLint 运行源文件。计划花费大量时间进行测试。

      【讨论】:

        【解决方案5】:

        虽然 Javascript 是一种解释性语言,但 Google 声称它可以被编译。这就是他们的closure compiler 所做的。它与最小化有点不同,因为代码还针对更快的执行进行了优化。

        【讨论】:

          猜你喜欢
          • 2014-11-27
          • 1970-01-01
          • 1970-01-01
          • 2011-03-11
          • 2011-01-11
          • 2010-09-21
          • 1970-01-01
          • 2011-04-16
          • 1970-01-01
          相关资源
          最近更新 更多