找不到“@wdio/globals/types”的类型定义文件

问题描述 投票:0回答:3

我正在使用带有打字稿的 webdriverio mocha 框架。 @wdio/cli": "^7.25.0" NodeJs v16.13.2 NPM V8.1.2

我在

tsconfig.json

遇到以下错误
JSON schema for the TypeScript compiler's configuration file

Cannot find type definition file for '@wdio/globals/types'.
  The file is in the program because:
    Entry point of type library '@wdio/globals/types' specified in compilerOptions

我的

tsconfig.json

{
    "compilerOptions": 
    {
        "moduleResolution": "node",
        "module": "CommonJS",
        "types": 
        [
            "node",
            "@wdio/globals/types",
            "expect-webdriverio",
            "@wdio/mocha-framework",
        ],
        "lib": 
        [
            "dom",
            "es7"
        ],
        "target": "es2022"
    }
}

我的

package.json

{
  "name": "mocha-template",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "keywords": [],
  "author": "",
  "license": "ISC",
  "scripts": 
  {
    "WDIO": "npx wdio run ./test/config/wdio.web.conf.ts"
  },
  "dependencies": {
    "@types/node": "^18.8.3",
    "@wdio/cli": "^7.25.0",
    "@wdio/junit-reporter": "^7.25.1",
    "@wdio/local-runner": "^7.25.1",
    "@wdio/mocha-framework": "^7.25.1",
    "@wdio/sauce-service": "^7.25.1",
    "@wdio/spec-reporter": "^7.25.1",
    "chai": "^4.3.6",
    "chai-http": "^4.3.0",
    "chromedriver": "^108.0.0",
    "deepmerge": "^4.2.2",
    "dotenv": "^16.0.3",
    "eslint": "^8.25.0",
    "eslint-plugin-mocha": "^10.1.0",
    "eslint-plugin-prettier": "^4.2.1",
    "fs-extra": "^10.1.0",
    "moment": "^2.29.4",
    "prettier": "^2.7.1",
    "ts-node": "^10.9.1",
    "typescript": "^4.8.4",
    "wdio-chromedriver-service": "^8.0.0",
    "wdio-video-reporter": "^3.2.3"
  }
}

我可以运行我的测试,但这个错误更烦人。 如果我打开任何测试文件意味着它显示

browser
$
错误 如何解决以上问题

对于

$

Cannot find name '$'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery` and then add 'jquery' to the types field in your tsconfig.

对于

browser
Cannot find name 'browser'.

typescript webdriver-io wdio
3个回答
2
投票

建议将根据您使用的 WebDriverIO 版本(以及您在版本 7 中使用同步模式还是异步模式)而变化。以下是可用于版本 7 和版本 8 的设置:

版本7

将相关片段添加到您的

tsconfig.json
版本 7 文档在这里

异步

{
    "compilerOptions": {
        "types": ["node", "webdriverio/async"]
    }
}

同步

{
    "compilerOptions": {
        "types": ["node", "webdriverio/sync"]
    }
}

版本8

将此代码段添加到您的 tsconfig 中:此处为版本 8 文档

{
    "compilerOptions": {
        "types": ["node", "@wdio/globals/types"]
    }
}

所以您遇到麻烦的原因可能是因为您尝试将版本 8 的类型导入到 webdriver 版本 7 项目中。


0
投票

没有类型

@wdio/globals/types
,您只需使用同步或异步包中的一种。 https://v7.webdriver.io/docs/typescript/#framework-setup

{
    "compilerOptions": {
        "types": ["node", "webdriverio/async"]
    }
}

0
投票

就我而言,我错误地将 typeRoots 包含在 tsconfig.json 中。 因此,它无法找到类型定义。

我刚刚删除了typeRoots,错误就消失了。

© www.soinside.com 2019 - 2024. All rights reserved.