带有角度 7 的 Ionic 4,找不到“@types”的类型定义文件

Posted

技术标签:

【中文标题】带有角度 7 的 Ionic 4,找不到“@types”的类型定义文件【英文标题】:Ionic 4 with angular 7, Cannot find type definition file for '@types' 【发布时间】:2019-10-11 13:16:13 【问题描述】:

我升级了我的 ionic 4 项目以使用 angular 7,一切都在调试模式下工作,但是当我尝试编译生产时: 'ionic cordova build android --prod',我得到以下输出:

ionic-app-scripts build --prod --target cordova --platform android [20:24:15] 离子应用脚本 3.2.4 ... [20:24:44] 打字稿错误 找不到“@types”的类型定义文件。

[20:24:44] 离子应用脚本任务:“构建” [20:24:44] 错误:无法转换 TypeScript 错误:无法转换 TypeScript 在errorCheckProgram(/Users/jesusotero/Projects/Bambuco/confiar/mardeconfianza/app/node_modules/@ionic/app-scripts/dist/aot/aot-compiler.js:119:39) 在对象。 (/Users/jesusotero/Projects/Bambuco/confiar/mardeconfianza/app/node_modules/@ionic/app-scripts/dist/aot/aot-compiler.js:89:21) 在步骤(/Users/jesusotero/Projects/Bambuco/confiar/mardeconfianza/app/node_modules/@ionic/app-scripts/dist/aot/aot-compiler.js:32:23) 在 Object.next (/Users/jesusotero/Projects/Bambuco/confiar/mardeconfianza/app/node_modules/@ionic/app-scripts/dist/aot/aot-compiler.js:13:53) 完成时(/Users/jesusotero/Projects/Bambuco/confiar/mardeconfianza/app/node_modules/@ionic/app-scripts/dist/aot/aot-compiler.js:4:58) [ERROR] 运行子进程 ionic-app-scripts 时出错。

ionic-app-scripts build --prod --target cordova --platform android 以退出代码 1 退出。

我还没有找到任何解决这个问题的方法,所以如果有人可以让我找到正确的方向来解决这个问题,我真的很感激。 我的 package.json 是:


  "name": "xxxxxxx",
  "version": "1.0.2",
  "author": "xxxxxx",
  "homepage": "xxxxx",
  "private": true,
  "scripts": 
    "clean": "ionic-app-scripts clean",
    "build": "ionic-app-scripts build",
    "lint": "ionic-app-scripts lint",
    "ionic:build": "ionic-app-scripts build",
    "ionic:serve": "ionic-app-scripts serve"
  ,
  "dependencies": 
    "@angular/animations": "7.2.15",
    "@angular/cli": "^7.3.9",
    "@angular/common": "7.2.15",
    "@angular/compiler": "7.2.15",
    "@angular/compiler-cli": "7.2.15",
    "@angular/core": "7.2.15",
    "@angular/forms": "7.2.15",
    "@angular/http": "7.2.15",
    "@angular/platform-browser": "7.2.15",
    "@angular/platform-browser-dynamic": "7.2.15",
    "@ionic-native/android-full-screen": "^5.6.0",
    "@ionic-native/core": "^5.6.0",
    "@ionic-native/mobile-accessibility": "^5.6.0",
    "@ionic-native/splash-screen": "^5.6.0",
    "@ionic-native/status-bar": "^5.6.0",
    "@ionic/pro": "1.0.20",
    "@ionic/storage": "2.1.3",
    "@ngx-translate/core": "^9.1.1",
    "@ngx-translate/http-loader": "^2.0.1",
    "cordova-android": "~7.0.0",
    "cordova-ios": "4.5.5",
    "cordova-plugin-device": "^2.0.2",
    "cordova-plugin-fullscreen": "^1.2.0",
    "cordova-plugin-ionic-keyboard": "^2.0.5",
    "cordova-plugin-ionic-webview": "^2.3.1",
    "cordova-plugin-network-information": "git+https://github.com/apache/cordova-plugin-network-information.git",
    "cordova-plugin-splashscreen": "^5.0.2",
    "cordova-plugin-statusbar": "^2.4.2",
    "cordova-plugin-whitelist": "^1.3.3",
    "ionic-angular": "^3.9.6",
    "ionicons": "3.0.0",
    "phonegap-plugin-mobile-accessibility": "^1.0.5",
    "rxjs": "6.5.2",
    "rxjs-compat": "^6.0.0-rc.0",
    "sw-toolbox": "3.6.0",
    "zone.js": "0.8.29"
  ,
  "devDependencies": 
    "@ionic/app-scripts": "^3.2.4",
    "@types/node": "^12.0.2",
    "typescript": "^3.2.4"
  ,
  "description": "An Ionic project",
  "cordova": 
    "plugins": 
      "cordova-plugin-whitelist": ,
      "cordova-plugin-device": ,
      "cordova-plugin-splashscreen": ,
      "cordova-plugin-ionic-keyboard": ,
      "cordova-plugin-fullscreen": ,
      "phonegap-plugin-mobile-accessibility": ,
      "cordova-plugin-ionic-webview": 
        "ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+"
      ,
      "cordova-plugin-statusbar": 
    ,
    "platforms": [
      "android",
      "ios"
    ]
  

离子信息:

Ionic:

   ionic (Ionic CLI)  : 4.12.0 (/usr/local/lib/node_modules/ionic)
   Ionic Framework    : ionic-angular 3.9.6
   @ionic/app-scripts : 3.2.4

Cordova:

   cordova (Cordova CLI) : 8.0.0
   Cordova Platforms     : android 7.0.0, ios 4.5.5
   Cordova Plugins       : cordova-plugin-ionic-keyboard 2.0.5, cordova-plugin-ionic-webview 2.3.1, (and 7 other plugins)

System:

   NodeJS : v10.11.0 (/usr/local/Cellar/node/10.11.0/bin/node)
   npm    : 6.9.0
   OS     : macOS Mojave
   Xcode  : Xcode 10.2.1 Build version 10E1001

【问题讨论】:

【参考方案1】:

根据您分享的数据,您的项目是 Ionic 3 项目 (3.9.6)。

Ionic 3 不适合与 Angular 6+ 一起使用。

我建议检查 Ionic 3 参考应用程序的 package.json 并相应地降级您的依赖项。

Reference App v3 branch

【讨论】:

【参考方案2】:

ionic-app-script 最近更新产生了这个错误。

作为一种解决方法,您可以将 package.json 中的版本锁定为最后一个工作版本:

"@ionic/app-scripts": "3.2.3"

或降级

【讨论】:

好吧,不是最近,而是给那些使用 ionic 3 编码的人【参考方案3】:

解决方案:使用ionic serve 为您的项目提供服务,然后更新 src 文件夹中的任何 .ts 文件并保存(ctrl+s),它将自动重新构建并提供应用程序,错误将得到解决,希望 :)。

这解决了我的问题。

引用自 ionic 框架论坛上发布的说明。

【讨论】:

以上是关于带有角度 7 的 Ionic 4,找不到“@types”的类型定义文件的主要内容,如果未能解决你的问题,请参考以下文章

30岁的程序员拿20万的年薪,吐槽买不起房也找不到女朋友; Ionic 4.0.0-beta.7 发布

离子/角度:找不到管道“异步”

Xcode 找不到任何匹配的配置文件

Ionic 4 本机插件地理定位给了我“找不到模块:错误:无法解析 'rxjs/Observable'”

带有自定义类型的角度单元测试给出了找不到命名空间

离子 3 - 找不到 FirebaseInstanceID