我正在尝试在打字稿应用程序中使用节点模块,并通过require()
将其包含在我的TypeScript代码中。
我将我的打字稿构建到JS,如果我通过节点运行它,一切运行良好。
我正在寻找一种方法来使用相同的代码并通过浏览器运行它。 Browserify似乎是一个明智的解决方案。
我在我的VS项目上弹出了一个构建后的动作,我正在通过browserify构建一个206KB的文件(所以它肯定在做什么!)。不幸的是,当它被浏览时,我的一小部分Typescript似乎无法访问。 我不熟悉browserify应该生成什么,所以不太确定它包含我的.js代码是否正确(如果有帮助,可以发布片段。)
所以我的问题确实是双重的,我正在寻找答案:
非常感谢这方面的任何想法或信息。
编辑:
为了澄清,我在保存/构建期间从.js
生成.ts
,并在post构建操作中将browserify指向输出。删节的js输出如下所示:
var TestModule;
(function (TestModule) {
function launchDrone() {
var exports = require('ar-drone');
var client = exports.createClient();
}
})(TestModule || (TestModule = {}));
当我从中生成浏览器化文件时,我无法在任何上下文中访问TestModule或launchDrone(当然也不能从窗口中访问。)是否有访问浏览器化代码的技巧?
答案 0 :(得分:3)
看起来你可能没有导出TestModule?您的TestModule文件应如下所示:
module TestModule {
export function launchDrone() {
var exports = require('ar-drone');
var client = exports.createClient();
}
}
export = TestModule;
这样你应能够从窗口启动TestModule和TestModule.launchDrone。