使用require-js和grunt.js - 错误缺少“name”,“include”或“modules”选项

时间:2013-07-26 20:57:20

标签: requirejs gruntjs

我的Gruntfile.js文件:

module.exports = function (grunt) {
    grunt.initConfig({
        pkg : grunt.file.readJSON('package.json'),
        requirejs : {
            compile: {
                options: {
                    baseUrl: "public_html/js",
                    mainConfigFile: "public_html/js/config.js",
                    out: "public_html/app.min.js"
                }
            }
        }
    });

    grunt.loadNpmTasks('grunt-contrib-requirejs');

    grunt.registerTask('default', ['requirejs']);
};

我的config.js文件:

'use strict';

require.config({
    deps: ['main'],
    paths: {
        jquery: 'vendor/jquery',
        jquery_tokeninput: 'vendor/jquery.tokeninput',
        underscore: 'vendor/underscore',
        backbone: 'vendor/backbone'
    },
    shim: {
        jquery: [],
        jquery_tokeninput: {
            deps: ['jquery']
        },
        backbone: {
            deps: ['vendor/underscore', 'vendor/jquery', 'vendor/jquery.tokeninput'],
            exports: 'Backbone'
        },
        underscore: {
            exports: '_'
        }
    }
});

require(['views/app'], function(AppView) {
  new AppView;
});

当我运行grunt requirejs时出错:

Running "requirejs:compile" (requirejs) task
[Error: Error: Missing either a "name", "include" or "modules" option at function.build.createConfig (D:\project\node_modules\grunt-contrib-requirejs\node_modules\requirejs\bin\r.js:24829:19)]

第一次使用gruntjs和requirejs所以不确定我为什么会收到错误。

1 个答案:

答案 0 :(得分:10)

更新了grunt.js文件以使用名称:

module.exports = function (grunt) {
    grunt.initConfig({
        pkg : grunt.file.readJSON('package.json'),
        requirejs : {
            compile: {
                options: {
                    name: "views/app",
                    baseUrl: "public_html/js",
                    mainConfigFile: "public_html/js/config.js",
                    out: "public_html/app.min.js"
                }
            }
        }
    });

    grunt.loadNpmTasks('grunt-contrib-requirejs');

    grunt.registerTask('default', ['requirejs']);
};

并从config.js

中删除了以下内容
require(['views/app'], function(AppView) {
  new AppView;
});