【问题标题】:vscode intellisense import not working within jest ts tests [closed]vscode intellisense 导入在 jest ts 测试中不起作用[关闭]
【发布时间】:2018-08-12 03:53:06
【问题描述】:

在我的整个项目中,VSCode 会自动提示导入类型(出现黄色灯泡)。除了在 JEST 测试文件中(在我的 tests 目录中),我没有灯泡。我可以手动编写导入,此时会检测到同一文件中的任何进一步导入。

有人知道如何解决这个问题吗?

问候,蒂莉

【问题讨论】:

标签: import visual-studio-code jestjs javascript-intellisense


【解决方案1】:

我遇到了同样的问题,Matt Bierner 的回答让我找到了正确的解决方案。

问题

我有这个项目布局:

./lib/
./src/
./tests/
./tsconfig.json

在我的 tsconfig 中,我有:

{
  "compilerOptions": {
    ...
    "outDir": "./lib",
    "typeRoots": ["./node_modules/@types"]
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "**/*.spec.ts"]
}

是测试被排除在外,即"**/*.spec.ts",它阻止了 vscode 在测试中建议导入。

很明显,当它被删除时,当构建运行时,测试将在我的./lib 输出目录中结束。

我发现了一个更好的解决方案来解决这两个问题。

解决方案

我将tsconfig.json拆分如下:

./lib/
./src/
./src/tsconfig.json
./tests/
./tsconfig.base.json
./tsconfig.json
./package.json

./tsconfig.base.json 文件:

{
  "compilerOptions": {
    ...
    "outDir": "./lib",
    "typeRoots": ["./node_modules/@types"]
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "**/*.spec.ts"]
}

./tsconfig.json 文件:

{
  "extends": "./tsconfig.base.json"
}

./src/tsconfig.json 文件:

{
  "extends": "../tsconfig.base.json",
  "compilerOptions": {
    "outDir": "../lib"
  },
  "exclude": ["node_modules", "lib", "**/*.spec.ts"]
}

修改了构建脚本,使其可以使用./src/tsconfig.json 文件,这需要添加-p ./src/ 部分,如下例所示。

./package.json 文件:

{
  ...
  "scripts": {
      ...
      "build": "tsc -p ./src/"
      ...
    }
  ...
}

我希望这对遇到同样问题的人有所帮助。

【讨论】:

  • 这对我有帮助,但必须有更好的方法,我经常遇到这个问题,但似乎找不到任何真正的提及。人们如何处理它超出了我的范围
【解决方案2】:

对于我的情况,将以下内容添加到 tsconfig.json 解决了问题。

{
  ...
  "include": [
    "src/**/*"
  ]
}

奇怪的是我的配置中从项目开始就没有这个,突然导入智能感知停止工作,不得不将上述选项添加到配置文件中。 我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2018-12-03
    • 2017-03-09
    • 2020-05-16
    • 1970-01-01
    • 2020-12-10
    • 2022-01-07
    • 2014-10-27
    • 2021-10-08
    • 2019-11-22
    相关资源
    最近更新 更多