离子3 - 所有进口都是未使用的警告(即使它们被使用)

时间:2017-06-26 12:02:07

标签: javascript angular cordova typescript ionic3

尝试使用以下

运行prod构建时出现以下错误
  

离子cordova构建浏览器--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包更新有关。

任何建议都会很棒。

谢谢!

3 个答案:

答案 0 :(得分:10)

Ionic 3.3.0(2017-05-24)删除了changelog中提到的遗留文件'src / declarations.d.ts'的用法。从src /文件夹中删除'declarations.d.ts'可以修复未使用的导入警告。

有关详细信息,请查看GitHub issue

答案 1 :(得分:3)

我有同样的问题,这是因为tslint 5.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”:true 添加到 tsconfig.json 文件中:

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

只知道“noUnusedLocals”:true 会抛出错误而不是警告......

希望这有帮助

答案 2 :(得分:0)

使用my ionic 3 App的工作表:

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()

  

移动的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>