【问题标题】:Can't access node modules无法访问节点模块
【发布时间】:2018-07-22 02:52:28
【问题描述】:

我是 nodejs 的新手,作为一名 C#/C++ 程序员,我想使用 typescript 输入一点我的代码。

当我尝试导入/需要模块(例如 fs 或流)时,我收到此错误:

找不到模块

(这些模块由 VisualStudio 2017 从 C:\Users\0xCDCDCDCD\AppData\Local\Microsoft\TypeScript\2.5\node_modules\@types\node\index.d.ts 中找到) 但是,如果我尝试使用 ReadableStreamReader,它似乎能够找到它而无需导入/需要它(在 C:\Program Files (x86)\Microsoft SDKs\TypeScript\2.5\lib.d.ts 中)

我发现的每篇文章都谈到了.d.ts 的需要,如果需要,还可以向npm install @types/node 讨论。 我试过了,但它不能解决我的问题。

我也试过添加

// <reference path="../node_modules/@types/node/index.d.ts" /> 

作为我的.ts文件的第一行(以及绝对路径,以及TypeScript 2.5目录的绝对路径)没有成功。

【问题讨论】:

  • 我正在尝试在 typescript 2.5 中重现该问题,但似乎无法重现。您能否显示给出错误的文件的来源,以及您的tsconfig.json 和您的package.json?如果你还没有,我建议你在你的tsconfig.json 中做"moduleResolution": "node",如果可以的话也升级到 TypeScript 2.7.1。
  • 您好,感谢您的信息。您可以在此处查看源代码:pastebin.com/PhxYK2Hq 请注意 tsconfig.json 现在已手动创建,因为我使用的是 visualstudio 并且没有(也许项目文件包含它作为 xml?太看看了)。我还发现我的 VisualStudio 中的一些项目似乎有 TypeScript 选项,而其他没有,这很奇怪。 (并且从文档中它应该使用节点,因为我没有使用 AMD、ES2015 或其他东西)
  • 很抱歉我在写下文件扩展名时确实失败了,你应该阅读 hello.ts 和 app.js。

标签: node.js visual-studio typescript


【解决方案1】:

好吧,看来我现在有一个可以编译的项目了。

我没有绝对的答案,但对我没有帮助的是我不知道自己在做什么 (TM)。 (我的意思是我同时学习 TypeScript 和 NodeJS)。

我发现的东西:

  • 不要相信编辑器的错误,相信 VisualStudio 的输出。

    我又遇到了一段时间的错误(它也无法找到定义),但最终能够编译和运行它。后来它确实消除了错误并找到了定义(也就是类型)。 也许错误一直存在,因为我错误地使用 stream.Readable 作为没有返回任何内容的方法的返回类型......

  • 对于像我这样的愚蠢的人(用我自己的话来说)TypeScript 有自己的语法(比如导入、接口等),它会将一些代码转换为 javascript(而忽略其他一些)。 NodeJS 然后执行 javascript。

    这意味着 require() 仍然在 .ts 中工作,你必须将它用于全局模块。 (如 fs 和 stream),这也意味着如果我使用的是常规 nodejs 项目,我需要使用 require() 来导入我的 ts 类。

  • 在 VisualStudio 中有两种方法可以创建 nodejs 项目,一种是其他语言/JavaScript/Node.js 和其他语言/TypeScript/Node.js。我现在确实使用了最后一个。我认为它唯一会添加的是在删除 tsconfig.json 文件后使用 TypeScript 的内置配置选项卡的能力。

    所以是的,Visual Studio 似乎在后台管理 ts 配置而不在驱动器上生成文件

  • 我确实尝试过手动安装 tsd(我之前用 npm 安装了 nodejs;以防万一)

    npm install tsd -g

  • 当我创建 TypeScript 项目时,VisualStudio 发现了 tsconfig.json,因为它不允许我使用嵌入的 TypeScript 设置选项卡。

【讨论】:

    猜你喜欢
    • 2021-10-23
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    • 2019-10-17
    • 2021-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多