运行npm update后,Typescript无法再解析任何模块(用户或已安装)

cld4siwp  于 2023-03-24  发布在  TypeScript
关注(0)|答案(1)|浏览(85)

我没有任何问题,然后昨天我运行了npm update,有些东西坏了,我无法弄清楚。
在我的源代码类型脚本JSX文件的顶部,我有以下几行:

import * as ReactDOM from 'react-dom/client';
import * as React from 'react';

这是解析错误首次出现在Intellisense中的地方,其中“react”以红色下划线,以及以下悬停标记:

"Cannot find module 'react' or its corresponding type declarations.ts(2307)".

如果我运行typescript编译器,错误似乎是

"error TS2686: 'React' refers to a UMD global, but the current file is a module. Consider adding an import instead."

这些错误不会出现在每个文件上,只会出现在ReactDom.createRoot().render()主文件中包含React组件的地方。
当我将“explainFiles”设置为true时,TypeScript编译器正确地输出react和react-dom模块以及用户导入文件--这与Intellisense无法找到它们的消息不符。
当我将“listFiles”设置为true时,tsc将输出我导入的所有正确的@types文件。
VS Code about:

Version: 1.76.2 (user setup)
Commit: ee2b180d582a7f601fa6ecfdad8d9fd269ab1884
Date: 2023-03-14T17:55:54.936Z
Electron: 19.1.11
Chromium: 102.0.5005.196
Node.js: 16.14.2
V8: 10.2.154.26-electron.0
OS: Windows_NT x64 10.0.19044
Sandboxed: Yes

package.json:

{
    "name": "test-webpacking",
    "version": "0.1.0",
    "description": "",
    "main": "test.js",
    "typings": "test.d.ts",
    "scripts": {
     "test": "echo \"Error: no test specified\" && exit 1"
    },
    "keywords": [],
    "author": "basic developer",
    "license": "ISC",
    "devDependencies": {
    "@types/react": "^18.0.28",
    "@types/react-dom": "^18.0.11",
    "css-loader": "^6.7.3",
    "style-loader": "^3.3.2",
    "webpack": "^5.76.2",
    "webpack-cli": "^4.10.0",
    "webpack-dev-server": "^4.13.1"
   },
    "dependencies": {
    "html-webpack-plugin": "^5.5.0",
    "mini-css-extract-plugin": "^2.7.5",
    "prop-types": "^15.8.1",
    "react": "^18.2.0",
    "react-dom": "^18.2.0"
   }
 }

tsconfig.json:

{
     "compilerOptions": {
     "outDir":"src/js",
     "target": "es6", 
     "lib": ["dom"],
     "jsx": "react",
     "module": "ES2021"
     "moduleResolution": "node",
     "isolatedModules": true, 
     "esModuleInterop": true,
     "forceConsistentCasingInFileNames": true, 
     "strict": true,
     }
 }

TypeScript配置设置“moduleResolution”已经设置为node,所以这对我来说不是问题。此外,重新启动VS Code,计算机也没有解决这个问题。
在编辑TypeScript文件时,编辑器的底部显示其使用TypeScript JSX。
我尝试删除node_modules文件夹沿着package-lock.json文件,并运行Node包管理器安装,结果相同。
我尝试将TypeScript甚至Node更新到最新版本,但都无济于事。

更新:根据@nekooee的回复,我尝试暂时解决我的问题。我从git repo恢复了package-lock.json和package.json文件并执行

npm install --save-exact

但 typescript 错误仍然存在。
我降级了react,@types/react,react-dom,@types/react-dom和TypeScript,没有成功,然后重新升级,但是tsc输出的错误改变了,现在我也有一个全局重新声明错误!

b1zrtrql

b1zrtrql1#

我今天在更新Typescript到v5后遇到了同样的问题。我不知道这是不是一个bug。我在导入类星体时也遇到了错误。无论如何,我将Typescript降级到4.9.5版本以找到更多关于此的文档,我的问题得到了解决。

相关问题