Requirejs 什么';当组合所有脚本进行部署时,require.js的用法是什么?

Requirejs 什么';当组合所有脚本进行部署时,require.js的用法是什么?,requirejs,Requirejs,对于部署,建议合并所有.js文件,以减少网络请求的数量。 Require.js支持动态加载脚本。如果所有的.js文件都组合在一起,因此已经在单个请求中加载,那么require.js会带来什么价值 它只是为了简化开发环境,将代码分解成单独的文件吗?您将应用程序逻辑合并到一个文件中,但您可能有外部库,这些库将根据需要加载:jQuery、Twitter Bootstrap、Knockout.js等。您将应用程序逻辑合并到一个文件中,但是您可能有外部库,这些库将按需加载:jQuery、Twitter B

对于部署,建议合并所有.js文件,以减少网络请求的数量。 Require.js支持动态加载脚本。如果所有的.js文件都组合在一起,因此已经在单个请求中加载,那么require.js会带来什么价值


它只是为了简化开发环境,将代码分解成单独的文件吗?

您将应用程序逻辑合并到一个文件中,但您可能有外部库,这些库将根据需要加载:jQuery、Twitter Bootstrap、Knockout.js等。

您将应用程序逻辑合并到一个文件中,但是您可能有外部库,这些库将按需加载:jQuery、Twitter Bootstrap、Knockout.js等。

RequireJS应该在开发和生产中使用。这不仅仅意味着在开发期间进行文件依赖关系管理,使用r.js为生产构建单个文件是一个选项,但不是强制性的。RequireJS不仅仅是一个开发工具

建议合并所有.js文件,以减少 网络请求数


在桌面上,浏览器不知道如何并行加载代码,因此加载时间比一个大文件要短。

RequireJS应该在开发和生产中使用。这不仅仅意味着在开发期间进行文件依赖关系管理,使用r.js为生产构建单个文件是一个选项,但不是强制性的。RequireJS不仅仅是一个开发工具

建议合并所有.js文件,以减少 网络请求数


在桌面上,浏览器不知道如何并行加载代码,导致加载时间比一个大文件短。

即使在这种情况下,使用require.js也有几个原因:

  • 您可以显式地声明模块之间的依赖关系,这样就可以自动检测不需要的模块,从而使它们不包含在组合文件中

  • 它迫使您更多地考虑代码的模块化,这可能会导致代码更干净
不使用require.js还有一些原因:

  • 如果您的依赖关系非常简单,那么您可能不会从require.js中获得太多好处
  • 使用require.js的设置可能更复杂
  • 您必须特别注意在部署中使用almond.js而不是require.js,否则您将面临获得比以前更大的.js文件的风险

即使在这种情况下,使用require.js也有几个原因:

  • 您可以显式地声明模块之间的依赖关系,这样就可以自动检测不需要的模块,从而使它们不包含在组合文件中

  • 它迫使您更多地考虑代码的模块化,这可能会导致代码更干净
不使用require.js还有一些原因:

  • 如果您的依赖关系非常简单,那么您可能不会从require.js中获得太多好处
  • 使用require.js的设置可能更复杂
  • 您必须特别注意在部署中使用almond.js而不是require.js,否则您将面临获得比以前更大的.js文件的风险

“它迫使您更多地考虑代码的模块化,这可能会导致代码更干净。”requirejs只关心文件,而不关心其中的内容。它可能看起来像DI,但它纯粹是关于文件依赖项解析的。代码本身的模块化程度较低,因为它依赖于requirejs……您必须将代码包装在define(…)调用中,这样您就不会自动创建全局。在使用require.js(或AMD)编写模块和直接加载javascript文件之间,这是一个非常重要的区别:对于模块,您必须考虑要在对象中显式地公开和返回什么。没有本地方法来管理客户端的文件依赖关系。问题是rjs模块很难集成到非rjs项目中,除非将requirejs作为依赖项引入。如果另一个项目使用另一个amd库呢?在我看来,这就是这些库的问题所在,也是为什么我觉得它们不能在纯javascript级别上促进真正的模块化。“它迫使你更多地考虑代码的模块化,这可能会导致更干净的代码。”requirejs只关心文件,而不关心其中的内容。它可能看起来像DI,但它纯粹是关于文件依赖项解析的。代码本身的模块化程度较低,因为它依赖于requirejs……您必须将代码包装在define(…)调用中,这样您就不会自动创建全局。在使用require.js(或AMD)编写模块和直接加载javascript文件之间,这是一个非常重要的区别:对于模块,您必须考虑要在对象中显式地公开和返回什么。没有本地方法来管理客户端的文件依赖关系。问题是rjs模块很难集成到非rjs项目中,除非将requirejs作为依赖项引入。如果另一个项目使用另一个amd库呢?这就是我认为这些库的问题所在,也是为什么我觉得它们不能在纯javascript级别上促进真正的模块化。你是说当我通过它们的cdn加载外部库时?因为否则我将有一个包含所有.js代码的文件-应用程序逻辑+外部库,所以我将使用requirejs从CDN加载外部库。我还为我的项目中使用的自己的库定制了CDN,当为共享库中的每个错误修复重建所有项目源时,在一个地方在CDN上更新它们更容易。你是说当我通过它们的CDN加载外部库时?因为否则我将有一个包含所有.js代码的文件-应用程序逻辑+外部库,所以我将使用requirejs从CDN加载外部库。我还为自己的库定制了CDN,在我的项目中使用,这更容易