如果我仍然把所有文件集中在构建上,我为什么要使用require.js ?

Why should I use require.js if I still concenate all files on build?

本文关键字:为什么 require js 如果 集中 文件 构建      更新时间:2023-09-26

编写模块化的、独立的可测试代码确实很有意义——特别是对于大项目。

但是使用require.js/amd在一个我仍然需要集中的大项目中有什么不同?在构建时缩小我的项目?

我想先说一下,我确实认为Require.JS是一个完全无用的框架。它使一个相当简单的概念过于复杂。

也就是说,在编写与平台无关的代码时,依赖加载非常有用。

例如,假设你想开发一个web应用程序,你也可以移植到移动应用程序的Apache Cordova和桌面应用程序的AppJS。您不希望重写所有的业务逻辑,因此构建一个能够动态加载依赖项以使软件适应多种体系结构的引导程序是有意义的。这样你就只拥有一款能够在各种平台上运行的产品。在服务器端脚本中添加NodeJS的使用,您不仅可以编写前端软件,还可以使用完全相同的代码编写后端。

模块化对跨平台项目有很大帮助,但正如我所说:Require.JS真的没有那么有用。我发现它太复杂了。相反,我只是使用一个围绕jQuery的getScript函数构建的对象,该函数包含所有已加载包的注册表,以便开发人员不会尝试加载已经加载的包(更大的项目)。

require.js有很多优点,例如:

    条件加载
  • 异步加载
  • <
  • 逻辑模块/gh>
  • 嵌套依赖的抽象
  • <
  • 多版本支持/gh>自动缩小

Require.js确实建议使用一个(或多个,如果这是适合你的项目)JS文件在生产中为你的JavaScript,所以你所做的是常见的小项目。我认为在小项目中使用它有两个主要原因(@Wolfgang Stengel列出了所有的好处)。

如果你在JS文件中结合jQuery或其他库,这可能不是正确的事情。如果你可以使用CDN复制,很可能用户已经在他们的机器上下载了该文件,这将花费更少的时间来加载JavaScript。

另一个好处是异步加载。这将使你的JavaScript加载不会阻碍网页的呈现。对于最终用户来说,一个显示速度更快的网页通常被认为是一个更快的网站。