Las*_*asf 3 typescript reactjs webpack yarnpkg
我是前端新手,而且可能很笨。但是,简而言之,如果我这样做
yarn add @mapbox/polyline
Run Code Online (Sandbox Code Playgroud)
当我执行以下操作时,我突然收到各种有用的错误,例如yarn start:
undefined
TypeScript error in undefined(undefined,undefined):
Cannot find type definition file for 'bin'. TS2688
undefined
TypeScript error in undefined(undefined,undefined):
Cannot find type definition file for 'src'. TS2688
index.js:1 undefined
TypeScript error in undefined(undefined,undefined):
Cannot find type definition file for 'test'. TS2688
Run Code Online (Sandbox Code Playgroud)
嗯不错。所以我已经彻底破坏了这个 ( git) 分支(曾经在那里!),所以让我们切换回工作master分支......但yarn start现在会产生相同的错误master!就好像仅仅打字的行为yarn add @mapbox/polyline就会在本地严重损坏某些东西,以至于无法恢复。我最终不得不再次克隆我的存储库并重新开始。
(因为我使用的是 Typescript,所以我也尝试添加类型yarn add @types/mapbox__polyline......这并不能减轻我的痛苦。)
知道如何解决这个问题吗?
发生此错误是因为您的内部有“垃圾”node_modules/@types和/或您的tsconfig.json配置不正确。为了准确理解正在发生的事情,您需要了解有关 TypeScript 的以下信息:
有两个与tsconfig.json此问题相关的字段:“typeRoots”和“types”
{
"compilerOptions": {
"typeRoots": [],
"types": []
}
}
Run Code Online (Sandbox Code Playgroud)
"typeRoots"指定 TypeScript 将在哪里寻找“类型”(我将很快讨论什么是类型)。如果没有"typeRoots"in tsconfig.json,则 TypeScript 会在 中查找类型node_modules/@types/。
那么,什么才算“类型”呢?类型是其中包含文件的文件夹(或者其中指定类型文件的不同路径/名称的文件夹)。index.d.tspackage.json
"types""typeRoots"通过允许 TypeScript 仅在 中指定名称的文件夹中查找类型来进行限制"typeRoots"。例如,如果您tsconfig.json包含:
{
"compilerOptions": {
...
"typeRoots": ['./node_modules/@types'],
"types": ['aaaaaa'],
...
},
...
}
Run Code Online (Sandbox Code Playgroud)
那么 only./node_modules/@types/aaaaaa将用于类型,并且./node_modules/@types/bbbbbb将被忽略(实际上,它只会被部分忽略,只有其中的全局变量将被忽略,有关其内部类型的其他信息将照常使用)。
"typeRoots"因此,在您的情况下(假设您的 中没有tsconfig.json),您很可能会收到“无法找到类型定义文件”错误,因为您的after中有垃圾(即不包含 index.d.ts 文件的子目录)node_modules/@types跑步yarn add @mapbox/polyline。这也可以解释为什么当你切换 git 分支时这个错误没有被修复(因为 git 不跟踪node_modules)。
| 归档时间: |
|
| 查看次数: |
1807 次 |
| 最近记录: |