Search code examples
packagerequirejsamdamplifyjs

RequireJS loading issue (with packages)


I am using RequireJS 2.0.6. And sometimes I have a laoding issue with one of my library (amplifyjs).

Project:

libs/
    amplify.js
    handlebars.js
    jquery.js
    require.js
packages/
    core/
        main.js
index.html
main.js

My main.js:

require.config({
    paths: {
        'jquery': '../libs/jquery',
        'amplify': '../libs/amplify',
        'handlebars': '../libs/handlebars'
    },
    shim: {
        'jquery': {
            exports: '$'
        },
        'amplify': {
            deps: ['jquery'],
            exports: 'amplify'
        },
        'handlebars': {
            exports: 'handlebars'
        }
    },
    packages: ['core'],
    baseUrl: './packages/'
});

require(['jquery', 'amplify', 'handlebars', 'core'], function() {
});

Index.html:

<script type="text/javascript" data-main="main" src="libs/require.js"></script>

75% of time it works but sometimes I get this error:

GET http://localhost:8888/aa/test/packages/libs/amplify.js 404 (Not Found) 
Uncaught Error: Script error
    http://requirejs.org/docs/errors.html#scripterror 

The path is wrong! But I cannot figure out why this happens ? And why only sometimes ?

(I am pretty sure it has to do something with the package, but I have no idea why it does that)


Solution

  • I figured out another way to do it and it works!

    require.config({
        paths: {
            libs: '../libs'
        },
        packages: ['core'],
        shim: {
            'libs/amplify': {
                deps: ['libs/jquery'],
                exports: 'amplify'
            },
            'libs/handlebars': {
                deps: ['libs/jquery'],
                exports: 'handlebars'
            },
            'core': {
                deps: ['libs/amplify', 'libs/handlebars']
            }
    
        }
    });