我试图在打字稿应用程序中使用节点模块,并通过require()将其包含在我的打字稿代码中。

我将我的打字稿构建到JS上,如果我通过node运行它,那一切都很好,这很好。

我正在寻找一种使用相同代码并通过浏览器运行它的方法。 Browserify似乎是一个明智的解决方案。

我在VS项目上弹出了一个构建后动作,我正在通过browserify构建一个206KB的文件(所以它肯定在做某事!)。不幸的是,我的一小部分Typescript在浏览器中似乎无法访问。
我对browserify应该生成的内容不太熟悉,因此不太确定它包装的.js代码是否正确(如果有帮助,可以发布摘要)。

所以我的问题确实是双重的,我正在寻找答案之一:


有没有推荐的方法来编写TypeScript post 0.9,以使其在浏览器浏览后运行?
有没有一种方法可以简单地告诉TypeScript自己引入'require'依赖关系?


在这个领域的任何想法或信息将不胜感激。

编辑:

为了澄清起见,我在保存/构建期间从.js生成了我的.ts,并且在构建后的操作中,将browserify指向输出。精简的js输出如下所示:

var TestModule;
(function (TestModule) {
    function launchDrone() {
        var exports = require('ar-drone');
        var client = exports.createClient();
    }
})(TestModule || (TestModule = {}));


当我从中生成浏览器化的文件时,我无法在任何上下文中访问TestModule或launchDrone(或者肯定不是从window访问)。访问浏览器化的代码有技巧吗?

最佳答案

看来您可能没有导出TestModule?您的TestModule文件应如下所示:

module TestModule {
    export function launchDrone() {
        var exports = require('ar-drone');
        var client = exports.createClient();
    }
}
export = TestModule;


这样,您应该能够从窗口启动TestModule和TestModule.launchDrone。

07-24 16:44