web-dev-qa-db-ja.com

Ionic 3-すべてのインポートは未使用の警告です(使用されている場合でも)

以下を使用してprodビルドを実行しようとすると、次のエラーが発生します

イオンコルドバビルドブラウザ--prod

のようなターミナルで多くの警告を取得する

FormBuilderが宣言されていますが、使用されていません

私のコードではそれをインポートして使用していますが、例えば.

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

誰かが同様の問題を抱えていましたか?私の推測では、それはnpmパッケージの更新と関係があるでしょう。

どんなアドバイスも素晴らしいでしょう。

ありがとう!

8
user2085143

Ionic 3.3.0(2017-05-24)は、 changelog で説明されているように、レガシーファイル 'src /declarations.d.ts'の使用を削除しました。 src /フォルダーから 'declarations.d.ts'を削除すると、未使用のインポートの警告が修正されます。

詳細については、 GitHubの問題 を確認してください。

10
Sebin Benjamin

同じ問題があります。これは、tslint5.0が未使用の変数のチェック方法を変更したためです。

tslint.jsonファイルのルールを変更することで、警告を抑制できます。 「no-unused-variable」をtrueからfalseに変更したので、次のようになります。

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

もちろん、これにより未使用の変数に関するすべての警告が抑制されますが、いつでもtrueに戻して、他に未使用の変数があるかどうかを確認できます。

次の変数を追加することもできます"noUnusedLocals":truetsconfig.jsonファイル:

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

"noUnusedLocals":trueは、警告ではなくエラーをスローすることを知っておいてください...

お役に立てれば

3
mcsavva

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


}
_

コンストラクターで別の関数setForm()を使用していることが問題のようです。

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