【问题标题】:npm error - Cannot find module './selenium-webdriver/lib/input'npm 错误 - 找不到模块 './selenium-webdriver/lib/input'
【发布时间】:2021-06-19 16:31:25
【问题描述】:

在我将 Angular 项目的版本从 5 更新到 7 后,我遇到了很多漏洞,要修复它 - 我运行了“npm 审计”中建议的所有命令,并且所有漏洞都得到了修复。

但是现在当我运行时:

ng serve

我收到此错误:

node_modules/protractor/built/ptor.d.ts(33,17) 中的错误:错误 TS2307:找不到模块“./selenium-webdriver/lib/input”。

编辑

如果我进入错误来源,我可以看到问题行:

// node_modules/protractor/built/ptor.d.ts
 Key: import("./selenium-webdriver/lib/input").IKey;

如果我将行更改为:

 Key: import("../../selenium-webdriver/lib/input").IKey;

它修复了错误。

我猜这是版本问题,但现在仍有待找出正确的版本。

这是我的 package.json 文件:

{
"name": "test",
 "version": "1.0.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build --prod",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular-devkit/core": "7.3.6",
"@angular/animations": "7.2.11",
"@angular/common": "7.2.11",
"@angular/compiler": "7.2.11",
"@angular/core": "7.2.11",
"@angular/forms": "7.2.11",
"@angular/http": "7.2.11",
"@angular/platform-browser": "7.2.11",
"@angular/platform-browser-dynamic": "7.2.11",
"@angular/router": "7.2.11",    
"core-js": "^2.4.1",
"rxjs": "^6.4.0",
"selenium-webdriver": "^4.0.0-alpha.1",
"tslib": "^1.9.0",
"zone.js": "^0.8.29"
},
"devDependencies": {
"@angular-devkit/build-angular": "^0.13.7",
"@angular/cli": "7.3.6",
"@angular/compiler-cli": "7.2.11",
"@angular/language-service": "7.2.11",
"@types/jasmine": "~2.5.53",
"@types/jasminewd2": "~2.0.2",
"@types/node": "~6.0.60",
"codelyzer": "^4.0.1",
"jasmine-core": "~2.6.2",
"jasmine-spec-reporter": "~4.1.0",
"karma": "^4.0.1",
"karma-chrome-launcher": "~2.1.1",
"karma-cli": "~1.0.1",
"karma-coverage-istanbul-reporter": "^1.2.1",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "^6.0.0",
"ts-node": "~3.2.0",
"tslint": "~5.7.0",
"typescript": "3.2.4"
 },
"description": "This project was generated with [Angular CLI] 
(https://github.com/angular/angular-cli) version 1.6.3.",
"main": "/",
"repository": {
"type": "git",
"url": "/"
 },
"keywords": [
"/"
],
"author": "/"
}

有什么想法吗?

【问题讨论】:

  • 你能给我们看看你的package.json文件吗?这将有助于向我们展示您当前拥有的依赖项。
  • 请看我的编辑
  • 上面列出的编辑也适用于我,但我不应该这样做......有没有合适的解决方案?

标签: node.js angular selenium-webdriver npm


【解决方案1】:

为了解决这个问题,我必须运行这个命令:

npm install protractor@latest --save

【讨论】:

    【解决方案2】:

    当您在测试用例中从 'protactor' 而不是 '@angular/platform-browser' 导入时会出现此错误。

    【讨论】:

      【解决方案3】:

      看来问题出在带有@types 的包上:

      https://github.com/angular/protractor/issues/5192

      也许尝试使用以前的版本,例如:@types/selenium-webdriver@2.53.33

      【讨论】:

      • 我需要在“selenium-webdriver”之前删除吗?
      • 可能没有,但如果这不起作用,您也可以为“selenium-webdriver”安装以前的版本
      • 看起来错误实际上已修复。但现在另一个错误来了。像 node_modules/protractor/built/driverProviders/local.d.ts(1,10) 中的错误:错误 TS2305:模块 '"selenium-webdriver/remote"' 没有导出的成员 'SeleniumServer'
      • 我尝试了其他版本,但它的钢制不行。请看我的编辑。
      【解决方案4】:
      1. 备份您的代码,包括 node_modules 文件夹
      2. 删除 node_modules 文件夹和 package-lock.json 文件
      3. 在应用程序的根文件夹中运行以下命令

        npm i
        
        ng serve
        

      【讨论】:

      • 为什么要现在备份您的代码,而不是总是使用某种形式的 Git 服务(例如 GitHub)来备份您的代码?
      • 备份代码 -> 将现有代码文件夹复制到系统中的另一个位置
      【解决方案5】:

      你能不能在终端试试这两个命令来确保所有的包都安装好了:

      npm i selenium-webdriver --savenpm i

      也和

      一样

      npm install selenium-webdriver --savenpm install

      【讨论】:

      • 你试过删除node_modules文件夹和package-lock.json文件吗?
      • 用于全新安装。有时这些旧文件夹可能会导致问题,我遇到过几次。所以我建议这样做。仅供参考,“npm i”中的“i”代表“npm install”
      【解决方案6】:

      我遇到了同样的错误。之所以会发生这种情况,是因为我以某种方式将以下行添加到了我的一个 controller.ts 文件中:

          import { element } from 'protractor';
      

      删除那行后,问题就解决了。

      【讨论】:

        【解决方案7】:

        如果在保存代码后突然发生这种情况并且您正在使用 visual studio 代码: 搜索 protractor 并考虑检查您创建的打字稿文件是否有未使用的导入。


        您可以使用alt+shift+o删除它们


        保存您的文件并运行ng serve,这应该可以解决您的问题

        【讨论】:

          【解决方案8】:

          只要跑 npm install 然后 ng serve

          它对我有用:)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2020-10-22
            • 2012-04-10
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-04-05
            • 1970-01-01
            相关资源
            最近更新 更多