0

如何优化我的多个 requirejs 项目?例如,我在下面有这个结构,我在不同的位置/文件夹中有两个, main.js

build/
   build.js

dev/    
   index.php
    core/
      js/
       main.js
       libs/
          jquery.js


    local/
      js/
        main.js

我的构建/build.js

({
    // Where my HTML and JS is stored.
    appDir: "../dev/",

    // Top-level directory containing my JS:
    baseUrl: "local/view/javascript/base/",

    // Where to build the optimized project.
    dir: "../dist",

    // Define the modules to compile.
    modules: [
        {
            name: 'main',

            mainConfigFile: '../dev/local/js/main.js'
        },
        {

            name: 'main',

            mainConfigFile: '../dev/core/js/main.js'
        }
    ]
})

它一直无法压缩或查找依赖项,例如,

错误:ENOENT,没有这样的文件或目录 'c:\wamp\websitename\dist\local\js\jquery.js

Myquery.js位于core/js/libs/- 乳清是在寻找它local\js吗?

我错过了什么?

4

1 回答 1

1

mainmodules在您的设置中出现两次。因此,您是在告诉r.js“请使用此类选项创建模块,并main在不同选项中创建模块”。应该如何创建两个应该是同一个文件的不同模块?它不能。../distmain../distr.js../dist

您也不能mainConfigFile像您一样放入模块配置中。这是一个顶级选项,所以如果你想要一个每个模块的设置,你需要使用override. 并且设置mainConfigFile并不能说明r.js您实际上正在尝试优化哪个模块。

根据您在问题中的描述,这样的事情似乎是需要的:

({
    // Where my HTML and JS is stored.
    appDir: "../dev/",

    // Top-level directory containing my JS:
    baseUrl: "local/view/javascript/base/",

    // Where to build the optimized project.
    dir: "../dist",

    // Define the modules to compile.
    modules: [
        {
            // Give a unique name.
            name: 'main_local',

            // This module does not exist in the source so tell r.js to 
            // *create* it.
            create: true,

            // What we want in it.
            include: ['../dev/local/js/main.js'],

            // "Override" the top level mainConfigFile, just for this module.
            override: {
                mainConfigFile: '../dev/local/js/main.js'
            }
        },
        {
            name: 'main_core',
            create: true,
            include: ['../dev/core/js/main.js'],

            override: {
                mainConfigFile: '../dev/core/js/main.js'
            }
        },
    ]
})
于 2014-11-02T11:45:49.180 回答