Visual Studio 代码、NodeJS 和要求
Posted
技术标签:
【中文标题】Visual Studio 代码、NodeJS 和要求【英文标题】:Visual Studio Code, NodeJS and require 【发布时间】: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 一样)。跨度>
【参考方案1】:
老实说,我不知道究竟是什么导致了这个问题,但我猜有些配置被破坏了。
有时一个简单的方法就是重新开始:尝试创建一个新项目并只导入您需要的东西。
如果可行,您应该继续在“新项目”上进行开发。有时这不是一种选择,但它可能是解决这类问题的最简单方法。
如果它不起作用,或者无法启动新项目,您可以尝试在线查找并最终在 Stack Overflow 上发布答案,如果结果不满意,但您也可以尝试启动通过重新安装 node/typescipt & Co.“更加新鲜”。
【讨论】:
以上是关于Visual Studio 代码、NodeJS 和要求的主要内容,如果未能解决你的问题,请参考以下文章
Nodejs in Visual Studio Code 01.简单介绍Nodejs
Visual Studio 2019 进程未关闭,NodeJS 问题
Nodejs in Visual Studio Code 04.Swig模版
visual studio code + Nodejs + Typescritpt + angularjs2 + bootstrap 环境搭建/Elementary os