Pobieram następujący błąd podczas próby uruchomienia budowy prod przy użyciu następujących

JONIC CORDOVA BUILD BROWSER --Prod

Uzyskanie wielu ostrzeżeń w terminalu

FormBuilder jest deklarowany, ale nigdy nie używany

Nawet jeśli w moim kodzie importuję go i używam go np.

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]
    });
  }

Czy ktoś miał podobny problem? Domyślam się, że będzie to coś wspólnego z aktualizacją pakietu NPM.

Wszelkie rady byłyby świetne.

Dzięki!

8
user2085143 26 czerwiec 2017, 15:02

3 odpowiedzi

Najlepsza odpowiedź

IIONIC 3.3.0 (2017-05-24) Usunięto użycie właściwego pliku "src / deklaracje.d.ts", jak wspomniano w Changelog. Usuwanie "deklaracji.d.ts" z SRC / folderu naprawia nieużywane ostrzeżenie o imporcie.

Aby uzyskać więcej informacji, sprawdź Github Wydanie.

10
Sebin Benjamin 10 wrzesień 2017, 14:22

Formularz roboczy z moją aplikacją IONIC 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)])]
            });
      }


}

Wydaje się, że używasz innej funkcji {x0}} w konstruktorze.

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 28 czerwiec 2017, 13:12

Mam ten sam problem, a to dlatego, że Tslint 5.0 zmienił sposób sprawdza niewykorzystane zmienne.

Możesz wyłączyć ostrzeżenia, zmieniając zasady pliku tslint.json . Zmieniłem "bez nieużywanej zmiennej" z PRAWDA, aby false, więc będzie wyglądać coś takiego:

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

Oczywiście to będzie tłumi wszystkie ostrzeżenia o niewykorzystanych zmiennych, ale w dowolnym momencie możesz go przywrócić, aby sprawdzić, czy istnieją inne nieużywane zmienne.

Możesz także dodać następującą zmienną "NOLLUTELLOCALS": true do tsconfig.json Plik:

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

Właśnie wiem, że "NunneredLoctals": true rzucą błędy zamiast ostrzeżeń ...

Mam nadzieję że to pomoże

3
mcsavva 27 czerwiec 2017, 11:20