Pregunta

Estoy usando Redesjs 2.0.6.Y a veces tengo un problema de laodificación con una de mis bibliotecas (AmplifyJS).

Proyecto:

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

mi 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% del tiempo funciona pero a veces recibo este 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 

¡El camino está mal!Pero no puedo averiguar por qué esto sucede?¿Y por qué solo a veces?

(Estoy bastante seguro de que tiene que hacer algo con el paquete, pero no tengo idea de por qué lo hace)

¿Fue útil?

Solución

¡Me di cuenta de otra forma de hacerlo y funciona!

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']
        }

    }
});

Otros consejos

(Estoy bastante seguro de que tiene que hacer algo con el paquete, pero tengo ninguna idea de por qué lo hace)

La palabra packages se refiere al estándar MUNDIJS, porque RequerJS admite los módulos de carga que están en una paquetes de commonjs La estructura del directorio y los módulos en sí deben estar en un formato de módulo que los requisitos pueden entender.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top