【问题标题】:VScode type acquisition with global yarn packages使用全局纱线包获取 VScode 类型
【发布时间】:2017-05-17 17:15:52
【问题描述】:

我在 VScode 中有一个 javascript 项目设置,但自动类型获取对我不起作用。 据我所知,VScode 检查@types 目录的本地和全局node_modules 文件夹。但是,我使用的是 yarn,那么我该如何告诉 VScode 使用正确的目录呢?

我正在使用 typescript 将我的 JS 转换为 ES5,所以我有一个 tsconfig.json。我尝试将路径添加到global yarn dir,但仍然没有运气。

提前感谢您的帮助!

【问题讨论】:

  • 所以没有Yarn创建的本地目录?
  • 有一个本地 node_modules 是的,但是,我宁愿不将 @types 包添加到我的 package.json 中,因为不同的人使用不同的 IDE。另一种解决方法是手动添加本地 @types 包,而不在 package.json 中指定它。这很乏味,不是吗?

标签: javascript typescript visual-studio-code yarnpkg


【解决方案1】:

这个问题有几点,让我们看看TypeScript如何在JavaScript项目中加载类型:

  1. 从项目中包含的d.ts 文件中加载类型。即使您使用@types,也会加载这些内容。
  2. 签入您当地的node_modules/@types
  3. 如果没有找到本地@types,触发自动类型获取。这会将@types 包安装到全局缓存中(与您的 npm/yarn 全局变量分开)

TypeScript 不会检查 @types 的 npm/yarn 全局安装目录。

就你而言,我认为你需要:

  • 在本地安装您需要的所有 @types,然后将其作为 devDependencies 包含在您的 package.json 中。
  • 如果您只使用 JavaScript,请切换到 jsconfig 而不是 tsconfig。 TypeScript 项目默认不启用自动类型获取

【讨论】:

  • 您可能可以使用typesRoot 指向新目录。
  • 我以为全局缓存是我的 npm/yarn 全局文件夹。谢谢(你的)信息!但是,我宁愿不将我的@types 包含在 devDependencies 中,因为我只会使用我会使用的条目污染 package.json,因为我团队中的其他人不使用 VScode。更改为 jsconfig.json 就成功了!我只是将我的 tsconfig 用作 webpack 使用的设置,所以我只是将 webpack 指向 jsconfig 以保留这些选项,现在 VScode 检测到它是一个 JS 项目,因此正在触发类型获取!谢谢!
猜你喜欢
  • 2017-09-16
  • 2017-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-25
  • 2020-07-12
  • 1970-01-01
相关资源
最近更新 更多