错误:无法在--prod中确定OverlayPortal类的模块

Moh*_*opi 4 node-modules cordova ionic2 ionic3 angular

我不确定我是否只面临一个问题ionic cordova run android --prod而我的ionic cordova run android工作正常.

错误:

Error: Cannot determine the module for class OverlayPortal in /Users/gopi/Documents/bos/hybrid-app/node_modules/ionic-angular/es2015/components/app/overlay-portal.d.ts! Add OverlayPortal to the NgModule to fix it.
Cannot determine the module for class IonicApp in /Users/gopi/Documents/bos/hybrid-app/node_modules/ionic-angular/es2015/components/app/app-root.d.ts! Add IonicApp to the NgModule to fix it.
Cannot determine the module for class ClickBlock in /Users/gopi/Documents/bos/hybrid-app/node_modules/ionic-angular/es2015/components/app/click-block.d.ts! Add ClickBlock to the NgModule to fix it.
Cannot determine the module for class Slides in /Users/gopi/Documents/bos/hybrid-app/node_modules/ionic-angular/es2015/components/slides/slides.d.ts! Add Slides to the NgModule to fix it.
Run Code Online (Sandbox Code Playgroud)

有人可以给我清楚的解释:

这是我的 ionic info

cli包:(/ usr/local/lib/node_modules)

@ionic/cli-utils  : 1.9.2
ionic (Ionic CLI) : 3.9.2
Run Code Online (Sandbox Code Playgroud)

全球套餐:

Cordova CLI : 7.0.1
Run Code Online (Sandbox Code Playgroud)

本地包裹:

@ionic/app-scripts : 1.3.8
Cordova Platforms  : android 6.2.3 ios 4.4.0
Ionic Framework    : ionic-angular 3.4.2
Run Code Online (Sandbox Code Playgroud)

系统:

Android SDK Tools : 25.2.5
Node              : v6.11.1
npm               : 3.10.10
OS                : macOS Sierra
Xcode             : Xcode 8.3.2 Build version 8E2002
Run Code Online (Sandbox Code Playgroud)

BRa*_*ass 11

我终于找到了解决这个问题的方法.我从ionic-angular导入嵌套组件的一些导入中直接导入,而不是从顶级包导出导入.我猜测产品AOT编译器不喜欢从顶层导入一些导入,而是直接导入嵌套项目.我的一个例子如下.我的猜测是你可以选择其中一种方法,但在混合它们时,AOT编译器会不高兴.

import { LoadingController } from 'ionic-angular';

import { LoadingController } from 'ionic-angular/components/loading/loading-controller';

  • 我喜欢离子性的,但是里面充满了这类东西……上帝保佑互联网 (2认同)

小智 5

这个解决方案对我有用。使用 npm i 安装所有组件后,单独安装 typescript 版本 2.8.1

npm install typescript@2.8.1
Run Code Online (Sandbox Code Playgroud)

再次运行构建


小智 5

这将帮助您解决这个问题。

/sf/answers/3908301211/

我解决了我的问题。在我的项目中,我使用的是过时的模块,ion-datepicker 如果您也遇到同样的问题,这里有一些步骤,您可以按照并找到受感染或过时的模块。

1. 第一步:

在您的项目中找到所有文件中的 from 'ionic-angular/ 单词,

2. 第二步:

如果你发现这个词像 import { xyz } from 'ionic-angular/xyz/abc'

更新或删除该模块。

  • 这应该是公认的答案......工作完美 (2认同)