为啥 vscode 从打字稿缓存中导入包
Posted
技术标签:
【中文标题】为啥 vscode 从打字稿缓存中导入包【英文标题】:Why vscode is importing packages from typescript cache为什么 vscode 从打字稿缓存中导入包 【发布时间】:2018-07-06 22:24:15 【问题描述】:我已经启动了一个使用 cli 生成的 react-native 项目。该应用程序似乎运行良好,但我注意到导入指向打字稿缓存而不是本地 node_modules。我什至没有使用打字稿。
IDE:vscode 1.19.3
import React, Component from 'react';
模块 "/Users/MyMac/Library/Caches/typescript/2.6/node_modules/@types/react/index"
【问题讨论】:
@types 是 typescript 定义包的集合,而不是实际的库本身。所以在你的情况下,它只是从这个目录加载 React 的类型定义。我猜 vscode 这样做是为了提供智能感知,即使你不使用 TypeScript。 唯一的问题是它每次都会破坏我的应用程序......(react-native)......相对路径不起作用 【参考方案1】:这是 javascript 所期望的。这些@types
文件为诸如react
之类的npm 模块提供VS Code IntelliSense。 react
模块本身仍将从您本地的 node_modules
导入
有关更多详细信息,请参阅我们在 Automatic type acquisition 上的文档
【讨论】:
这不是可能的误导吗?例如,如果恰好安装在.../Caches/typescript/4.0/node_modules/@types/
目录中,VS Code 不会显示未安装在模块中本地的包的导入错误?以上是关于为啥 vscode 从打字稿缓存中导入包的主要内容,如果未能解决你的问题,请参考以下文章