Javascript 如果我使用r.js优化我的RequireJS项目,我是否必须更改路径和依赖项配置?

Javascript 如果我使用r.js优化我的RequireJS项目,我是否必须更改路径和依赖项配置?,javascript,optimization,requirejs,dependencies,r.js,Javascript,Optimization,Requirejs,Dependencies,R.js,我是新来的。我大部分都明白。然而,r.js优化过程让我感到困惑。两个问题: 将所有源代码连接到一个文件中难道不符合RequireJS延迟加载功能的目的吗 如果我使用r.js进行优化,并将所有内容都放在一个文件中,那么我是否需要手动更新配置中的路径信息以指向该文件?我定义为单个模块的依赖关系现在是否必须在整个应用程序中更改以指向这个文件?这里只是一个假装的来源,以说明我目前的设置: 在优化之后,现在是否必须手动更新以使其看起来像这样 requirejs.config({ paths :

我是新来的。我大部分都明白。然而,
r.js
优化过程让我感到困惑。两个问题:

  • 将所有源代码连接到一个文件中难道不符合RequireJS延迟加载功能的目的吗

  • 如果我使用
    r.js
    进行优化,并将所有内容都放在一个文件中,那么我是否需要手动更新配置中的路径信息以指向该文件?我定义为单个模块的依赖关系现在是否必须在整个应用程序中更改以指向这个文件?这里只是一个假装的来源,以说明我目前的设置:


  • 在优化之后,现在是否必须手动更新以使其看起来像这样

    requirejs.config({
        paths : {
            optimizedMod : 'build-dir/optimizedModule',
        },
    });
    
    -- MOD 1
    define(["optimizedMod"], function(optimizedMod) {
    // do something
    }
    

    Re。1.不,没有
    r.js
    分析您的依赖关系树,并且(默认情况下)只包括在应用程序启动时需要加载的模块。动态地
    require
    d的依赖项不会被包括在内,它们将在运行时被延迟加载(除非您这样做)

    然而,延迟加载并不是使用RequireJS的主要好处,更重要的是模块化本身。被迫管理依赖关系使得编写不可测试或不可重构的代码变得更加困难——坏的体系结构可以立即被发现(冗长的依赖关系列表、“上帝”模块等等)

    Re。2.这正是在
    路径
    配置元素中创建或映射它们的原因<代码>路径应该用于第三方库,而不是您自己的代码,集中名称->路径映射会降低灵活性。一旦通过依赖项的路径(相对于
    baseUrl
    )引用依赖项,r.js可以在构建时重写它们:

    define(["app/common/module2", "app/common/module3"], function(mod2, mod3) {
      // do something
    }
    
    define(["app/common/module2", "app/common/module3"], function(mod2, mod3) {
      // do something
    }