【问题标题】:Visual Studio Code download node.d.tsVisual Studio 代码下载 node.d.ts
【发布时间】:2015-04-30 09:58:30
【问题描述】:

我正在测试来自 Microsoft 的新代码编辑器:Visual Studio Code。

我在 Windows 7 下,我正在尝试这个例子:https://code.visualstudio.com/Docs/nodejs

但是当我尝试添加/// <reference path="/typings/node/node.d.ts"/>

就像示例中所说的那样。它不起作用。该文件从未下载过,我不知道在哪里可以找到它。

有人知道如何解决这个问题吗?是错误还是问题出在我的机器上?

【问题讨论】:

  • 您需要将node.d.ts 放在您机器上的文件路径/typings/node/ 中(注意/typings/ typings//typings 相同在大多数 Windows 安装中将解析为 C:/typings)。它不会为您下载。

标签: node.js visual-studio-code


【解决方案1】:

TSD 是 TypeScript 定义,而 TypeScript 是来自 Microsoft 的 JavaScript 的类型化超集,可编译为纯 JavaScript。如果你像我一样只是想用VSCode开发常见的基于JavaScript的node.js项目,你不需要了解这些。

为了解决您的问题,我认为更好的方法是将 TSD 包管理器安装为全局模块。这将使您能够在全局范围内使用命令 tsd

npm install tsd@next -g

然后转到项目的根文件夹,然后键入

tsd install node

这将自动创建一个文件夹“typings/node”,其中包含一个名为“node.d”的 .ts 文件。

如果您还需要针对 express.js 或 async.js 等第三方模块的 IntelliSense,您可以自己添加它们

tsd install express

就像你已经熟悉的“npm”是 node.js 的包管理器一样,“tsd”是 TypeScript 定义的包管理器(但不是 TypeScript 本身)

这里有一个显示可用存储库的列表。

http://definitelytyped.org/tsd/

一旦你将所有 .tsd 文件下载到 'typings' 文件夹中,你仍然需要手动将这些特殊的 cmets 放在每个 .js 文件的开头,以帮助 VSCode 查找 node 和 express 的定义,所以现在 VSCode了解类和函数的 API 详细信息。

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

【讨论】:

  • 感谢 tsd 手动安装,它可以工作。 :) 我认为这是一个代理问题。我在家里的个人电脑上没有这个问题,它可以使用自动编码工具。
  • 在 VSCode 0.10.1 中你不需要添加引用。它只是工作
  • tsd 已弃用,如您在 documentation 中所见。使用typings!
  • typings 在 repo 描述中也被标记为已弃用
  • @snarf @Rami 现代方式是npm install --save @types/node
【解决方案2】:

我昨晚刚试过,效果很好。

您不应该自己放置参考。你应该让 VS Code 为你做这件事,按下“Ctrl + ”。 (这就是你应该按下的点键)在标记的 __dirname 上并选择网站上所说的 TypeScript 定义文件的选项。

VS Code 将在您的项目文件夹下创建目录结构,下载文件并将引用添加到您的 app.js express 应用程序。

【讨论】:

  • 是的,我做了什么,但它不起作用。可能是因为我公司有代理。今晚我会在我的个人电脑上试一试,看看是否有区别。
  • 在我的个人电脑上也可以正常工作。我很确定这是一个代理问题。
【解决方案3】:

我在使用 angular 时遇到了同样的问题,这就是我让它为我工作的方式:看起来问题是 VSCode 无法下载文件并创建目录。我用谷歌搜索了 angular.d.ts 并在 GitHub - DefinitelyTyped

上找到了它

我创建了“typings/angularj/”文件夹并添加了文件,现在智能感知正在为 angular 工作:)

因此,只需获取“node.d.ts”文件,而不是从definitelyTyped 获取,它也应该适合您。

【讨论】:

  • 链接到 404
【解决方案4】:

正如@HenryLi 提到的,您需要为 Node.js 获取一个包含类型定义的文件。然而,TSD 已经被弃用了一段时间。不过不用担心!现在类型定义由微软直接管理,并通过npm!

要解决你的问题,运行这个命令就足够了

npm install --save -g @types/node

【讨论】:

  • 我运行了上面提到的命令并得到了成功消息。 + @types/node@13.13.5 在 0.339 秒内从 43 个贡献者中添加了 1 个包但找不到我需要在 Visual Studio 中的 .ts 文件中引用的文件 node.d.ts 的位置。 @m93a
  • 应该在node_modules/@types/node
【解决方案5】:

(编辑:VS Code 需要我打开一个目录,而不是一个文件才能让智能感知正常工作)

对我来说同样的问题。

这不起作用:

添加 /// 对 'node/node.d.ts' 的引用

什么都没有发生...

但这确实有效,VS Code 正在响应。 (编辑:停止警告,但不会以这种方式自动完成):

将“__dirname”标记为全局

【讨论】:

  • 这只会删除警告。通过这种方式,您将不会获得 __dirname 标识符的任何智能感知。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-19
  • 2016-12-18
  • 1970-01-01
  • 2017-02-19
  • 2022-08-10
  • 1970-01-01
相关资源
最近更新 更多