为什么在我的GCP代码中isDevMode()无法正常工作

时间:2019-06-23 10:28:38

标签: angular typescript google-cloud-platform

我学习了Angular,并在Google云平台上运行了该Angular应用,并且想知道环境是开发环境还是产品环境,我使用isDevMode()是这样的:

export class BookService {

  private BookItemsUrl: string;  // URL to web api

  constructor(private http: HttpClient) {
    // Return different backend path depending on runtime environment.
    if (isDevMode()) {
      // Localhost
      this.BookItemsUrl = 'api/BooksXml';
    } else {
      this.BookItemsUrl = 'https://my-back-bone.appspot.com/api/BooksXml';
    }
  }
..............

问题在于,它可以在localhost上运行,但在部署到GCP时不能运行。 我搜索了此内容,但看不到为什么它不起作用。

有什么主意吗?

1 个答案:

答案 0 :(得分:1)

来自angular docsisDevMode

  

默认情况下为true,除非用户之前致电enableProdMode   叫这个。

因此,为了使isDevMode正常工作,必须在使用enableProdMode()之前在生产环境中调用isDevMode()

启用runtime production mode的一种方法是在进行生产构建时使用--prod标志,如Sergey所述。

如果您的main.ts文件中尚未包含以下行,请确保将其包括在内。 This答案也可能有帮助。

if (environment.production) {
    enableProdMode();
}