【问题标题】:TypeScript node sample won't compileTypeScript 节点示例无法编译
【发布时间】:2012-10-26 10:31:45
【问题描述】:

似乎每个人都可以使用示例,但我的却不行...

我在 Windows 7 64 位中安装了 nodejs 0.8.2。做了npm install -g typescript 以获得 TypeScript 支持。然后我从 TypeScript 下载了源代码并尝试了示例 但我就是无法编译节点示例。它返回错误消息:

c:\..\..\typescript\bin\tsc.js:21182
           if(_fs.existsSync(path)) {
                  ^
TypeError: Object #(Object) has no method 'existsSync'
...
...

有其他人看到过这个问题吗?

找了好几个小时都没有找到任何东西。

说我有这个代码:

///<reference path="node.d.ts"/>


import http = module("http");

var server = http.createServer(function (req, res)
{
    res.writeHead(200, { 'ContenType': 'text/plain' });
    res.end('Hello World');
});

server.listen(1337);

在 Visual 2012 express for web 中输入此内容,没有显示错误。参考已经到位,智能感知工作正常。但是当我使用带有 node 的命令行工具来编译这个文件时,它会弹出进一步显示的错误。我没有在我自己的代码中包含 _fs.existsSync。

好的...在玩弄了 tsc.js 和 nodejs 之后...我意识到从 node 引擎中的 require('fs') 创建的 _fs 对象根本没有一个名为 existsSync 的函数...

在搜索了一下之后......显然这个功能现在在路径模块下...... 我将尝试编辑 tsc.js 以使用路径模块的 existsSync 函数。

【问题讨论】:

    标签: typescript tsc


    【解决方案1】:

    好的...将 tsc.js 更改为使用 _path.existsSync 似乎可行。 但经过一番折腾,我发现我系统上的节点版本仍然是 v0.6.2。 即使我之前尝试安装从该站点下载的 v0.8.12。 移除 v0.6.2 并安装 v0.8.14 后,现在 fs 模块包含目标函数。

    不知道为什么这个系统上的node版本卡在0.6.2~''~

    【讨论】:

      【解决方案2】:

      我认为问题是因为您的代码中有拼写错误。尝试使用fs.existsSync(path)。您正在尝试将方法分配给不存在的对象。

      fs.existsSync('path/to/file');
      

      fs.exists() 与上述同义,只有连接成功时才使用回调。

      fs.exists('/path/to/file', function (exists) {
        util.debug(exists ? "it's there" : "no passwd!");
      });
      

      http://nodejs.org/api/fs.html#fs_fs_exists_path_callback

      【讨论】:

      • hmmm...但这不是我的代码...这是从 codeplex 下载的 typescript 源文件中给出的示例...
      • 您是否看过 typescript 的节点示例中的示例?就像...在引用node.d.ts时,如果我刚刚导入http = module("http");在代码中,编译会失败
      • 发现了问题...这是因为当我尝试使用来自 nodejs.org 的安装程序进行安装时,不知何故此系统上的节点版本未更新为 0.8.xx。它卡在 0.6.2 版本,可能是因为它是 32 位版本,我尝试使用 64 位安装程序对其进行更新。无论如何感谢您的帮助。
      猜你喜欢
      • 1970-01-01
      • 2017-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-25
      • 1970-01-01
      • 2012-03-30
      • 2011-07-23
      相关资源
      最近更新 更多