【发布时间】:2014-06-26 07:06:59
【问题描述】:
我正在尝试在 typescript 应用程序中使用节点模块,并且我已通过 require() 将其包含在我的 TypeScript 代码中。
我将我的 typescript 构建为 JS,如果我通过 node 运行它,一切都会很好。
我正在寻找一种方法来使用相同的代码并通过浏览器运行它。 Browserify 似乎是一个明智的解决方案。
我在我的 VS 项目上弹出了一个构建后操作,我正在通过 browserify 构建一个 206KB 的文件(所以它肯定在做一些事情!)。不幸的是,当浏览器化后,我的一小部分 Typescript 似乎无法访问。 我不太熟悉 browserify 应该生成的内容,所以不太确定它包含我的 .js 代码的内容是否正确(如果有帮助,可以发布 sn-ps)。
所以我的问题确实是双重的,我正在寻找答案:
- 是否有推荐的方法来编写 TypeScript post 0.9 以允许它在浏览器化后运行?
- 有没有办法简单地告诉 TypeScript 自己引入“require”依赖项?
非常感谢您在这方面的任何想法或信息。
编辑:
澄清一下,我在保存/构建期间从.ts 生成我的.js,并在构建后操作中将browserify 指向输出。一个精简的 js 输出如下所示:
var TestModule;
(function (TestModule) {
function launchDrone() {
var exports = require('ar-drone');
var client = exports.createClient();
}
})(TestModule || (TestModule = {}));
当我从中生成浏览器化文件时,我无法在任何上下文中访问 TestModule 或 launchDrone(当然也不能从窗口。)访问浏览器化代码有什么技巧吗?
【问题讨论】:
-
browserify 将所有引用的js文件放到一个文件中。它不会渲染js。您可能需要添加一个步骤将 typescript 转换为 js,然后再进行浏览。
-
是的,我已经在这样做了,我的 .js 文件已生成,这就是我指向 browserify 的原因
-
啊 - 现在明白了。控制台中是否有任何错误?您是否尝试过使用
;为各个脚本添加前缀? -
据我所见,我没有收到任何错误(VS 通常很吵,我会手动运行构建后命令,如果我看到任何内容,我会告诉你,一个勾号)
-
不,完全没有错误,这就是我使用的构建操作“browserify e:\nodejs\myproject\app.js -oe:\nodejs\myproject\bundledapp.js”应该我正在为 browserify 使用任何其他参数?我只是从一些在线示例中挑选出来的
标签: javascript node.js typescript browserify