1

我正在尝试使用 grunt 和 almond 创建一个 requirejs 优化配置。这是配置:

requirejs:
      build:
        options:
          almond: true
          dir: 'build'
          appDir: ''
          baseUrl: '../client'
          wrap: true
          include: '../client/main'
          keepBuildDir: true
          paths:
            underscore: 'client/vendor/underscore'
            jquery    : 'client/vendor/jquery'
            backbone  : 'client/vendor/backbone'

文件夹结构:

在此处输入图像描述

错误:

C:\Users\User\Documents\Source\Project>grunt requirejs
Running "requirejs:build" (requirejs) task
>> Error: ENOENT, no such file or directory
>> 'C:\Users\User\Documents\Source\Project\build\models\MenuItem.js'
>> In module tree:
>>     ../client/main
Warning: RequireJS failed. Use --force to continue.

Main.js 代码(用咖啡脚本编写)

requirejs.config(
  baseUrl: "client"
  shim:
    'backbone':
      deps: ['jquery']
      exports: 'Backbone'
    'jquery':
      exports: '$'
    'underscore':
      exports: '_'
  paths:
    jquery: 'vendor/jquery-1.11.0'
    underscore: 'vendor/underscore'
    backbone: 'vendor/backbone'
)

define 'start', ()->
  window.types =
    Models: {}
    Collections: {}
    Views: {}
  null

require ['models/MenuItem', 'views/MenuItem'], (MenuItemModel, MenuItemView)->
  view = new MenuItemView(
    new MenuItemModel(),
    "#app",
    'first'
  )
  view.render();
  null

我想以不需要 requirejs 的方式将分布在多个 js 文件中的整个项目编译成一个文件。我正在尝试使用 almond js 执行此操作,但构建任务不会查找相对于引用文件路径的引用文件。请帮助我进行正确的配置。

4

0 回答 0