Angular 角度:使用--prod标志构建时出错

Angular 角度:使用--prod标志构建时出错,angular,angular-cli,Angular,Angular Cli,我有Angular 2应用程序,运行应用程序时我有2种不同的行为依赖于--构建应用程序时的prod标志: ng构建//有效 ng build--prod//运行时出错 因此,当使用--prod构建时,我得到: 未捕获错误:无法解析“z”(?,?,?)的所有参数。确保所有参数都用Inject修饰或具有有效的类型批注,并且“z”用Injectable修饰。 感谢您的帮助--prod模式正在缩小您的代码。因此,除非您标记类,在这些类中使用依赖项注入,否则注入将不再有效。(这是错误消息试图告诉您的) 为

我有Angular 2应用程序,运行应用程序时我有2种不同的行为依赖于--构建应用程序时的prod标志:

  • ng构建//有效

  • ng build--prod//运行时出错

  • 因此,当使用--prod构建时,我得到:

    未捕获错误:无法解析“z”(?,?,?)的所有参数。确保所有参数都用Inject修饰或具有有效的类型批注,并且“z”用Injectable修饰。

    感谢您的帮助--prod模式正在缩小您的代码。因此,除非您标记类,在这些类中使用依赖项注入,否则注入将不再有效。(这是错误消息试图告诉您的)


    为了让你的应用程序在缩小模式下运行,你必须根据文档标记所有类。此外,我强烈建议更新到Angular 5。我认为行为和错误消息在这方面有所改进。

    您是否按照错误消息的指示执行了操作?为什么你仍然使用Angular 2,而不是最新的Angular 5?它实际上是Angular 5,我写错了Angular 2,谢谢你没有代码,我们帮不上忙。你能给我一个提示吗,在代码中修改什么?我所有的服务都带有@Injectable(),正如我正确理解您的回答,我还必须在注入服务的组件中添加“东西”。是的,@Injectable是所需的装饰器。您的代码中缺少它。不幸的是,为了找到正确的位置,您必须检查代码。此外,您还必须确保在tsconfig中将“emitDecoratorMetadata”设置为true,但由于这是默认设置,因此我假设问题不在于此