【问题标题】:How build app in production mode, Ionic3?如何在生产模式下构建应用程序,Ionic3?
【发布时间】:2018-05-31 17:03:50
【问题描述】:

我想在 ionic 3 上将我的应用程序构建为生产模式。我试试

ionic cordova run android --prod --release

但我总是出错:

错误:遇到未定义的提供者!通常这意味着你有一个 循环依赖(可能是由于使用 'barrel' index.ts 文件。

我的 package.json 看起来像:

{
  "name": "ionic-wordpress",
  "version": "0.0.1",
  "author": "IonicThemes",
  "homepage": "https://ionicthemes.com/",
  "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/common": "4.1.3",
    "@angular/compiler": "4.1.3",
    "@angular/compiler-cli": "4.1.3",
    "@angular/core": "4.1.3",
    "@angular/forms": "4.1.3",
    "@angular/http": "4.1.3",
    "@angular/platform-browser": "4.1.3",
    "@angular/platform-browser-dynamic": "4.1.3",
    "@ionic-native/core": "3.12.1",
    "@ionic-native/native-storage": "^4.2.1",
    "@ionic-native/splash-screen": "3.12.1",
    "@ionic-native/status-bar": "3.12.1",
    "@ionic/storage": "^2.1.3",
    "android-versions": "^1.2.1",
    "cordova-android": "^6.3.0",
    "cordova-browser": "^4.1.0",
    "cordova-ios": "^4.4.0",
    "cordova-plugin-console": "^1.1.0",
    "cordova-plugin-device": "^1.1.7",
    "cordova-plugin-nativestorage": "^2.2.2",
    "cordova-plugin-splashscreen": "^4.1.0",
    "cordova-plugin-statusbar": "^2.3.0",
    "cordova-plugin-whitelist": "^1.3.3",
    "ionic-angular": "3.6.0",
    "ionic-plugin-keyboard": "^2.2.1",
    "ionicons": "3.0.0",
    "q": "^1.5.1",
    "rxjs": "5.4.0",
    "sw-toolbox": "3.6.0",
    "zone.js": "0.8.12"
  },
  "devDependencies": {
    "@ionic/app-scripts": "2.1.3",
    "ionic": "3.12.0",
    "typescript": "2.3.4"
  },
  "description": "An Ionic project",
  "cordova": {
    "plugins": {
      "cordova-plugin-nativestorage": {},
      "cordova-plugin-console": {},
      "cordova-plugin-device": {},
      "cordova-plugin-splashscreen": {},
      "cordova-plugin-statusbar": {},
      "cordova-plugin-whitelist": {},
      "ionic-plugin-keyboard": {}
    },
    "platforms": [
      "browser",
      "ios",
      "android"
    ]
  }
}

我的 npm-debug.log 也有下一个错误

160758 error Linux 4.10.0-28-generic
160759 error argv "/usr/bin/nodejs" "/usr/lib/node_modules/npm/bin/npm-cli.js" "install" "--scripts-prepend-node-path=auto"
160760 error node v4.8.4
160761 error npm  v2.15.11
160762 error code EPEERINVALID
160763 error peerinvalid The package @ionic-native/core@3.12.1 does not satisfy its siblings' peerDependencies requirements!
160763 error peerinvalid Peer @ionic-native/native-storage@4.5.0 wants @ionic-native/core@^4.2.0
160763 error peerinvalid Peer @ionic-native/splash-screen@3.12.1 wants @ionic-native/core@^3.6.0
160763 error peerinvalid Peer @ionic-native/status-bar@3.12.1 wants @ionic-native/core@^3.6.0
160764 verbose exit [ 1, true ]

请帮我找出一个错误。如果在默认模式下运行应用程序,它可以正常工作

ionic cordova 运行安卓

在问之前我搜索了很多。谢谢。

【问题讨论】:

  • 检查 app.module.ts 中的所有提供者
  • @Edison,请看我的屏幕joxi.ru/J2b4x4VT4eMGMr。我有一个提供者和服务,但它们都包括提供者。

标签: angular typescript ionic-framework ionic3


【解决方案1】:

你需要在你的app.module.ts中将storageproviders中删除,解释可以在here中找到。

@NgModule({
    providers: [ storage, ... ]
});

注意:由于@ionic/storage 2.x.x,我们需要导入 IonicStorageModule 而不是 storage

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-07
    • 2017-09-24
    • 1970-01-01
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    相关资源
    最近更新 更多