web-dev-qa-db-fra.com

Ionic 3 - Toutes les importations sont des avertissements non utilisés (même s'ils sont utilisés)

Je reçois le message d'erreur suivant lorsque j'essaie d'exécuter une génération de produit à l'aide de ce qui suit

navigateur ionic cordova build --prod

Obtenir beaucoup d'avertissements dans le terminal comme 

FormBuilder est déclaré mais jamais utilisé

Même si dans mon code, je l'importe et je l'utilise, par exemple.

import { Validators, FormGroup, FormBuilder } from '@angular/forms';

public form: FormGroup;

constructor(
    private formBuilder: FormBuilder
  ) {

setForm(){
    this.form = this.formBuilder.group({
      password: ['', Validators.required],
      password2: ['', Validators.required]
    });
  }

Quelqu'un at-il eu un problème similaire? Je suppose que cela aurait quelque chose à voir avec une mise à jour du paquet npm.

Tout conseil serait bon.

Merci!

8
user2085143

Ionic 3.3.0 (2017-05-24) a supprimé l'utilisation du fichier hérité 'src/declarations.d.ts' comme indiqué dans le fichier changelog . La suppression de 'declarations.d.ts' du dossier src/résout l'avertissement d'importations non utilisé.

Pour plus d'informations, consultez le numéro GitHub .

10
Sebin Benjamin

J'ai le même problème et c'est parce que tslint 5.0 a changé la façon dont il vérifie les variables inutilisées.

Vous pouvez supprimer les avertissements en modifiant les règles du fichier tslint.json . J'ai changé le "non-variable-non-utilisée" de true à false afin qu'il ressemble à ceci:

{
  "rules": {
    "no-duplicate-variable": true,
    "no-unused-variable": [
      false
    ]
  },
  "rulesDirectory": [
    "node_modules/tslint-eslint-rules/dist/rules"
  ]
}

Bien sûr, cela supprimera tous les avertissements concernant les variables inutilisées, mais vous pouvez à tout moment rétablir la valeur true pour voir s'il existe d'autres variables inutilisées.

Vous pouvez également ajouter la variable suivante "noUnusedLocals": true au fichier tsconfig.json :

{
  "compilerOptions": {
    "noUnusedLocals": true,
.
.
.
}

Sachez simplement que le "noUnusedLocals": true générera des erreurs au lieu d’avertissements ...

J'espère que cela t'aides

3
mcsavva

Forme de travail avec mon application ionique 3:

import {FormBuilder, FormGroup, Validators  } from '@angular/forms';


@IonicPage()
@Component({
  selector: 'page-mobile-login',
  templateUrl: 'mobile-login.html',
})
export class MobileLoginPage {
    public loginForm:FormGroup;

    constructor(public navCtrl: NavController, 
      public navParams: NavParams,
      public formBuilder: FormBuilder) 
      {
          this.loginForm = formBuilder.group({
              mobile: ['', Validators.compose([Validators.required,Validators.pattern('[0-9 ]*'),
                Validators.maxLength(10),Validators.minLength(10)])]
            });
      }


}

Il semble que vous utilisiez une autre fonction setForm() dans le constructeur.

mobile-login.html

<form [formGroup]="loginForm" (submit)="submitMobile()" novalidate>
  <ion-list padding-right padding-left>
    <ion-item no-padding>
      <ion-input formControlName="mobile" type="tel" 
        placeholder="Enter Mobile" minlength="10" maxlength="10"
        [class.invalid]="!loginForm.controls.mobile.valid && loginForm.controls.mobile.dirty">
      </ion-input>
    </ion-item>
    <ion-item no-padding class="error-message" 
      *ngIf="!loginForm.controls.mobile.valid && loginForm.controls.mobile.dirty">
      <p ion-text>
        Enter Valid Mobile Number
      </p>
    </ion-item>
  </ion-list>

    <ion-row responsive-sm padding-right padding-left>
      <ion-col class="otpbutton">
        <button color='navbarColor' class="bluebg" ion-button block icon-left type="submit" [disabled]="!loginForm.valid">
        <ion-icon name="phone-portrait"></ion-icon>
            Submit
        </button>
      </ion-col>
    </ion-row>
  </form>
0
Sohan