如何覆盖打字稿AMD需要的功能?

时间:2016-05-31 09:53:43

标签: typescript requirejs require

我有一个导入我的打字稿类

import Service = require("domain/Service");

我希望能够覆盖"要求"基本上toLowercase()传入的任何路径。

我在requirejs中添加了断点,但似乎没有为我的每个导入调用它。我现在想知道我关于requirejs作为底层模块加载器的假设是不正确的,并且打字稿中的require恐惧可能是打字稿本身的东西吗?

无论哪种方式,我可以覆盖打字稿中的require来规范我的路径的套管吗?

1 个答案:

答案 0 :(得分:0)

我最终设法解决了这个问题。

require语句转换为JS中的定义。

当我意识到这一点时,它是一个简单的拦截参数的例子,并在路径传递给define方法之前对路径进行低层包装。

像这样(使用lodash / underscore):

var _define = define;
    define = function()
    {
        var paths = arguments[0];

        var newPaths = _.map(paths,
            function(path) {
                return path.toLowerCase();
            });

        arguments[0] = newPaths;
        return _define.apply(this, arguments);
    }