caolan / jam

JavaScript package manager - using a browser-focused and RequireJS compatible repository
MIT License
1.5k stars 105 forks source link

jam mod `backbone` fails #114

Open me-ascii opened 11 years ago

me-ascii commented 11 years ago

Installed backbone module (with lodash) throw follow error:

Uncaught Error: Module name "underscore"
has not been loaded yet for context: _

Before any require/define called.

Configuration

// ...
{
    "name": "lodash",
    "location": "jam/lodash",
    "main": "./lodash.js"
}

"shim": {
    "backbone": {
        "deps": [
            "jquery",
            "underscore"
        ],
        "exports": "Backbone"
    }
}
me-ascii commented 11 years ago

This is due to the order of the modules in the compiled js file. Now in alphabetical order. Error disappears when I move the lodash module before the backbone module.

Suggest using the order based on the dependencies of the module

me-ascii commented 11 years ago

To maintain the correct order of the modules I have to list them in include (via -i)

jam compile -i lodash -i backbone -o build.js

But it applies only to simple examples

me-ascii commented 11 years ago

More convenient trick is to manually patch require.config file (change the order of modules) But the next time you do jam install you will need to be repeated.