为 Cypress 指定 tsconfig.json 位置

TJB*_*man 15 typescript cypress

我正在尝试使用带有 Typescript 的 Cypress,但 Cypress 找不到tsconfig.json我为其创建的文件。我也有一个自定义的目录结构(因为我讨厌根目录中有一堆配置文件,所以我把它们放在一个配置目录中)。

项目目录结构

/
??? package.json
??? configs/
?   ??? cypress.json
??? src/
?   ??? cypress/
?   ?   ??? tsconfig.json
Run Code Online (Sandbox Code Playgroud)

赛普拉斯打开命令

//  package.json

"scripts": {
    "cypress:open": "cypress open --config-file configs/cypress.json"
},
Run Code Online (Sandbox Code Playgroud)

在上面的脚本中,--config-file标志告诉 cypresscypress.json配置文件的位置,这很棒,因为我可以将该文件放在任何我想要的地方。但是,现在我需要指示 Cypress 在哪里可以找到它的tsconfig.json文件。

/configs/cypress.json(告诉 Cypresscypress/目录在哪里)

{
  "fixturesFolder": "src/cypress/fixtures",
  "integrationFolder": "src/cypress/integration",
  "pluginsFile": "src/cypress/plugins/index.js",
  "screenshotsFolder": "src/cypress/screenshots",
  "videosFolder": "src/cypress/videos",
  "supportFile": "src/cypress/support/index.js"
}

// is there no option to set tsconfig.json path????
Run Code Online (Sandbox Code Playgroud)

官方文件说,只是把它的cypress/目录中。根据文档,那应该在/cypress/tsconfig.json,但在我的项目中它在/src/cypress/tsconfig.json.

这是我尝试放置tsconfig.json文件的位置:

{
  "fixturesFolder": "src/cypress/fixtures",
  "integrationFolder": "src/cypress/integration",
  "pluginsFile": "src/cypress/plugins/index.js",
  "screenshotsFolder": "src/cypress/screenshots",
  "videosFolder": "src/cypress/videos",
  "supportFile": "src/cypress/support/index.js"
}

// is there no option to set tsconfig.json path????
Run Code Online (Sandbox Code Playgroud)

如何指示 Cypress 在哪里查找我希望它使用的 tsconf.json 文件?cypress.json配置文件中是否有选项,或者我可以使用的 CLI 标志????

我不想用杂项配置文件弄乱我的项目根目录,而且我的项目和测试套件实际上有单独的 tsconfig 文件。显式设置文件路径会很棒。

wth*_*tho 10

虽然这不是您想听到的答案,但tsconfig.json将目录标记为 Typescript 项目的根目录,就像将package.json目录标记为 Node.js 项目的根目录一样。这些文件可帮助 IDE 等工具了解您的项目。

在我看来,只有tsconfig.json当您开始将文件放入package.json其他文件夹时,才应该考虑移动。

另请参阅: https: //www.typescriptlang.org/docs/handbook/tsconfig-json.html


Kev*_*Old 6

请参阅Cypress Real World App这是一款支付应用程序,用于演示 Cypress 测试方法、模式和工作流程的实际使用情况

它是使用 create-react-app 和 TypeScript 构建的。用于 Cypress的 tsconfig.json位于目录cypress

您可能需要配置根 tsconfig.json并将其从cypress tsconfig.json扩展,如 RWA 中所做的那样。

// cypress/tsconfig.json
{
  "extends": "../tsconfig.json",
  // ...
}
Run Code Online (Sandbox Code Playgroud)