RequerJS Cargando problema (con paquetes)
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)
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.