【问题标题】:Visual Studio Code, NodeJS and requireVisual Studio 代码、NodeJS 和要求
【发布时间】:2021-12-26 12:39:07
【问题描述】:

我安装了 Visual Studio Code,并想使用 TypeScript 编写 NodeJS。 所以我创建了非常基本的应用程序,但我收到错误消息:

Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.ts(2580)

执行提到的npm 命令并不能解决问题。我已经丢失了我关注、阅读的链接墙,或者不适用于我、没有解决问题、已经过时等等:

这个最接近:
https://www.section.io/engineering-education/how-to-use-typescript-with-nodejs/

我运行了这些命令:
npm i --save-dev @types/node
npm install -g typescript
npm install -D typescript

只是为了测试我将配置文件tsconfig.json替换为:

{
  "compilerOptions": {                        
    "target": "es6",                               
    "module": "commonjs",                           
    "outDir": "./dist",                             
    "rootDir": "./src",                             
    "strict": true,
    "moduleResolution": "node",
    "esModuleInterop": true,                       
  },
  "exclude":[
    "./node_modules"
  ]
}

我将我的.ts 文件移动到项目根文件夹的src 文件夹,并创建了dest 文件夹。我重新启动了应用程序,没有。我寻找可能有帮助的扩展,没有。

我知道我不能只在 TypeScript 中“要求”,因为它想检查函数是否真的存在,这与 JavaScript 不同。但是我如何实际将 TypeScript 代码编译为 JavaScript 然后运行呢?导致问题的行是文件主题中的三行。

const http = require('http');
const crypto = require('crypto');
const colors = require('colors');

编辑:
declare function require(name : string); 修复了问题。但是 require('crypto') 抛出:
lib.dom.d.ts(18699, 13): 'crypto' was also declared here.

【问题讨论】:

  • 查看this答案
  • 我已经试过了,帖子里提到过。它不能解决任何问题。
  • 你试过在你的ts源码中使用import关键字吗?
  • @DadiBit const crypto = import('crypto')import crypto from "crypto" 都抛出 Cannot find module 'crypto' or its corresponding type declarations.ts(2307) 尽管 npm install -g crypto 和重新启动。
  • 将变量 crypto 重命名为 xcrypto 会消除该消息,但 Visual Code 找不到 createHash 的定义(实际上就像没有理解代码的常规 JavaScript 一样)。跨度>

标签: node.js typescript visual-studio-code


【解决方案1】:

老实说,我不知道究竟是什么导致了这个问题,但我猜有些配置被破坏了。

有时一个简单的方法就是重新开始:尝试创建一个新项目并只导入您需要的东西。

  • 如果可行,您应该继续在“新项目”上进行开发。有时这不是一种选择,但它可能是解决这类问题的最简单方法。

  • 如果它不起作用,或者无法启动新项目,您可以尝试在线查找并最终在 Stack Overflow 上发布答案,如果结果不满意,但您也可以尝试启动通过重新安装 node/typescipt & Co.“更加新鲜”。

【讨论】:

    猜你喜欢
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    相关资源
    最近更新 更多