【问题标题】:Understanding r.js options w/grunt & backbone and relative paths了解带有 grunt 和骨干以及相对路径的 r.js 选项
【发布时间】:2014-10-13 22:50:50
【问题描述】:

我正在尝试弄清楚如何使用 r.js。我不断收到错误,例如模块路径不存在,或者文件被转储到不应出现的位置。

我有一个与 wordpress 集成的单页应用程序。我采用this backbone boilerplate 作为我的一般结构,尽管我的设置完全不同。我的文件结构如下所示。

.Theme Folder
├── _assets
|   ├── _application
|   |   ├── css
|   |   ├── fonts
|   |   ├── img
|   |   ├── _js
|   |   |   ├── main.js  //this is my require.js config file
|   |   |   ├── _app  //here's where the boilerplate structure comes into play
|   |   |       ├── collections
|   |   |       ├── models
|   |   |       ├── routers
|   |   |       ├── templates
|   |   |       ├── views
|   |   |   ├── libs
|   |   |   ├── utilities
|   |   ├── scss
|   |   ├── video
|   └── build  //Concatenated application directory mirror
|   └── gruntfile.js
|   └── bower.json
|   └── package.json

为了省去破译我巨大的咕噜声文件的心痛。基本上,我最初设置它以便所有内容都被连接、丑化并编译到构建文件夹中。我为 r.js 创建了一个简单的任务来测试。我收到一条错误消息,提示找不到我的 lodash 库(我的 main.js 文件中的第一个路径)。它认为 lodash 在 assets/lodash.js 它忽略了我在 main.js 中的 baseUrl 属性(require.js 配置)它的实际位置是 assets/application/js/libs/lodash.js。我的 requirejs 任务如下:

        requirejs: {
          compile: {
            options: {
              baseUrl: "./",
              mainConfigFile: "application/js/main.js",
              name: "./application/js/main",
              out: "./build/js/optimized.js"
            }
          }
        }

我很难弄清楚 rjs 到底在做什么。当我期望它工作时,它不是在正确的目录中寻找文件。当我将它配置为找到正确的文件时,它会复制我的整个资产文件夹并将其转储到我的构建文件夹中......这引起了很多关于所有 r.js 正在做什么以及它希望我输入什么的困惑选项。

这是我目前遇到的错误:

>> Error: ENOENT, no such file or directory
>> 'path-to-theme-folder-here/assets/libs/lodash.js'
>> In module tree:
>>     application/js/main.min

【问题讨论】:

    标签: javascript backbone.js requirejs gruntjs r.js


    【解决方案1】:

    在我看来,您给出的描述应该可以:

    requirejs: {
      compile: {
        options: {
          baseUrl: "application/js/",
          mainConfigFile: "application/js/main.js",
          name: "main",
          out: "build/js/optimized.js"
        }
      }
    }
    

    【讨论】:

    • 完美,最后我最终将我的 baseurl 和 mainconfig 指向了我的构建文件夹,因为我的 main.js 指向了缩小的文件名。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    • 2014-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-25
    相关资源
    最近更新 更多