了解r.js选项w / grunt&骨干和相对路径

时间:2014-10-13 22:50:51

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

我试图找出如何使用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

拯救解密我巨大的咕噜文件的心痛。基本上我最初设置它,以便所有内容被连接,uglified和编译到构建文件夹。我为r.js创建了一个简单的任务来测试。我收到一条错误,说我找不到我的lodash库(我的main.js文件中的第一个路径)。它认为lodash在assets / lodash.js中它忽略了我的main.js(require.js配置)中的baseUrl属性,它的实际位置是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正在做什么以及它希望我为它输入什么的混淆#39;选项。

这是我目前得到的错误:

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

1 个答案:

答案 0 :(得分:2)

在我看来,你给出的描述应该有效:

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