Chad Johnson
Chad Johnson

Reputation: 21895

Built RequireJS app won't load

So, I built my RequireJS app using grunt-require, which I believe uses r.js behind the scenes. However, upon running the app, I get this every time:

Uncaught Error: Module name "underscore" has not been loaded yet for context: _. Use require([])
http://requirejs.org/docs/errors.html#notloaded require-2.1.9.min.js:8
GET http://localhost:8080/resources/js/app/App.js 404 (Not Found) require-2.1.9.min.js:34
Uncaught Error: Script error for: app/App
http://requirejs.org/docs/errors.html#scripterror

My "main" script is in app/Main.js and looks like this:

require(['common'], function() {
    'use strict';

    require(['app/App'], function(app) {
        app.start();
    });
});

And then the build options for grunt-require:

requirejs: {
    options: {
        baseUrl: 'resources/js',
        dir: 'resources/js/build',
        main: 'app/Main',
        out: null,
        optimize: 'uglify2',
        skipDirOptimize: true,
        priority: ['common'],
        preserveLicenseComments: false,
        modules: [
            {
                name: 'common'
            },{
                name: 'app/Main',
                exclude: ['common'],
                include: ['app/App']
            }
        ],
        paths: { ... },
        shim: { ... }
    }
}

As you can see, I've included app/App in the build of app/Main.js.

It loads Main.js and common.js separately, as expected, but then it tries to load app/App.js separately. When I look in the built version of Main.js, I see that app/App.js has in fact been built in.

Any ideas why it's trying to load app/App.js separately?

Upvotes: 0

Views: 732

Answers (1)

user2445933
user2445933

Reputation:

It seems, you forgot findNestedDependencies : true option in your build config and your nested require did not load. See its description.

Upvotes: 1

Related Questions