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!
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
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>