Can i use davisjs as AMD module with requirejs? I tried, but maybe i forgot something in require config?
requirejs([
"jquery",
"davis"
],
function ($, routing) {
var app = routing(function () {
this.get('/welcome/:name', function (req) {
alert("Hello " + req.params['name']);
});
});
}
This works:
var app = Davis(function () {..});
Sounds like someone has a case of the Missing Shim. You need to configure RequireJS to adapt the non-AMD-compatible library into an AMD module like this:
requirejs.config({
paths: {
Davis: 'script/davis'
},
shim: {
Davis: {
exports: 'Davis'
}
}
});
require([
"Davis"
], function (davis) {
console.log("Davis?", davis);
});
More info in RequireJS documentation
Invoking Davis()
directly works since it's available in the global scope; it's just not "registered" as an AMD module: that why it's undefined
when requested by RequireJS.