尝试使用以下
运行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包更新有关。
任何建议都会很棒。
谢谢!
答案 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>