我目前正在开发Angular应用程序,想知道是否可以使生产失败,但不能在本地开发中失败。
例如,我有一个复杂的登录逻辑,我想在开发时解决这个问题。
为此,我只需要在app.component.ts
中插入一行:
ngOnInit(): {
this.userservice.mockLoginUser();
...
}
是否有任何方法可以使这条生产线在开发模式下运行,但是如果我在生产中忘记它,就会失败吗?例如,创建一个仅在ng build --prod
上失败的命令(而不是在ng serve
上失败的命令)?
仅使用environment.ts
是一种选择,因为我不想污染代码库,我想实际删除它(以及mockLoginUser
方法),因为我只需要它在少数情况下。我的另一个想法是创建一条tslint规则,该规则将阻止该规则投入生产,但找不到任何规则。
答案 0 :(得分:1)
为什么不使用单元测试?
在我正在研究的一个项目中,我们有一个微型前端应用程序,当独立运行(没有容器)时,很难对其进行身份验证。
我经常在ngOnInit
中设置开发永无止境的JWT:
ngOnInit() {
this.authService.setJwt('ey....');
}
然后我有一个简单的单元测试正在检查它:
it('should not initialize JWT on component initialization', () => {
const authService = TestBed.inject(AuthService);
spyOn(authService, 'setJwt');
fixture.detectChanges();
expect(authService.setJwt).not.toHaveBeenCalled();
});
由于这一点,我永远不会忘记删除此“代码开发行”。我的代码库没有污染那些不必要的语句。此外,我什至无法将代码推送到任何分支,因为我们的gitlab管道会自动运行测试。