使构建在生产上失败,而不是在开发模式上失败



我目前正在开发一个Angular应用程序,想知道我是否可以在生产中使构建失败,但在本地开发中不能。

例如,我有一个复杂的登录逻辑,我想在开发时绕过它。为此,我只需要在app.component.ts:中介绍一行

ngOnInit(): { 
this.userservice.mockLoginUser(); 
... 
}

有没有办法让这条生产线在开发模式下运行,但如果我在生产中忘记了它,就会很难失败?例如,创建一个仅在ng build --prod时失败的命令(但不适用于ng serve(?

仅仅使用environment.ts不是一种选择,因为我不想污染代码库,我想物理删除它(以及mockLoginUser方法(,因为我只在少数情况下需要它。我的另一个想法是创建一个tslint规则,阻止它进入生产,但找不到任何规则。

为什么不使用单元测试

在我工作的一个项目中,我们有一个微型前端应用程序,当它独立运行时(没有容器(很难进行身份验证。

我经常在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管道会自动运行测试。

最新更新