Davis.js作为AMD模块?

时间:2013-08-16 11:48:07

标签: javascript requirejs amd

我可以将davisjs用作带有requirejs的AMD模块吗?我试过了,但也许我在require config中忘记了什么?

requirejs([
   "jquery",
   "davis"
],
function   ($, routing) {
    var app = routing(function () {
        this.get('/welcome/:name', function (req) {
            alert("Hello " + req.params['name']);
        });
    });
}

这有效:

var app = Davis(function () {..});

1 个答案:

答案 0 :(得分:1)

听起来像有人遇到了失踪的情况。您需要配置RequireJS以使非AMD兼容的库适应这样的AMD模块:

requirejs.config({
  paths: {
    Davis: 'script/davis'
  },
  shim: {
    Davis: {
      exports: 'Davis'
    }
  }
});

require([
  "Davis"
], function (davis) {
  console.log("Davis?", davis);
});

RequireJS documentation

中的更多信息

直接调用Davis(),因为它在全局范围内可用;它只是没有“注册”为AMD模块:这就是为什么在RequireJS请求时它是undefined