【问题标题】:How can you override typescript AMD require functionality?您如何覆盖 typescript AMD 要求功能?
【发布时间】:2016-09-29 06:34:17
【问题描述】:

我的打字稿类有一个导入

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

我希望能够覆盖“require”,基本上是toLowercase() 任何传入的路径。

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

无论哪种方式,我可以在 typescript 中覆盖 require 以正式确定路径的大小写吗?

【问题讨论】:

    标签: typescript requirejs require


    【解决方案1】:

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

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

    当我意识到这一点时,这是一个简单的案例,即在将参数传递给 define 方法之前截取参数并将路径小写。

    类似这样的东西(使用 lodash / 下划线):

    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);
        }
    

    【讨论】:

      猜你喜欢
      • 2012-09-27
      • 2017-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-17
      • 1970-01-01
      • 1970-01-01
      • 2015-12-27
      相关资源
      最近更新 更多