【问题标题】:Production Angular 7 app produces runtime errors in console related to ngx-bootstrap生产 Angular 7 应用程序在与 ngx-bootstrap 相关的控制台中产生运行时错误
【发布时间】:2018-10-31 15:33:41
【问题描述】:

我有一个 Angular 7 应用程序,它一直在愉快地使用 ngx-bootstrap。现在我已经尝试在一段时间后发布该应用程序,我收到以下错误。如果我只是在开发模式下使用该应用程序,一切都很好。我正在使用 Visual Studio 进行开发和发布,但我可以仅使用 CLI 来重现它。显然,ng serve 工作得很好,而ng serve --prod 给了我下面的错误(为了清楚起见,去掉了)。这都和bsDaterangepicker有关。

Khronos locale error: please load locale "en" before using it
(anonymous) @ main.f09bc86ef36b4bf3b010.js:1
main.f09bc86ef36b4bf3b010.js:1 ERROR Error: Uncaught (in promise): Error: Locale "en" is not defined, please add it with "defineLocale(...)"
Error: Locale "en" is not defined, please add it with "defineLocale(...)"
    at e.writeValue (main.f09bc86ef36b4bf3b010.js:1)
main.f09bc86ef36b4bf3b010.js:1 Khronos locale error: please load locale "en" before using it

我找到了a SO question,我认为它可以帮助我解决问题,但没有奏效。

我曾尝试返回我的package.json 的一些修订版,但这似乎没有帮助。似乎 Angular 生产构建优化正在变得一团糟。就在我准备发布问题时,我尝试了ng serve --prod --optimization=false,这似乎解决了这个问题。但显然,这并不理想。这是希望在即将推出的 Angular 版本中解决的问题吗?

【问题讨论】:

  • 如果对您有帮助,请查看此链接:github.com/valor-software/ngx-bootstrap/issues/4054
  • 谢谢,但我已经试过了。我使用defineLocale 来实际定义缺少的en 语言环境,但出现了一些非常奇怪的行为。
  • // 字符串必须小写 - 即使示例将其指定为 enGb defineLocale('engb', enGbLocale); (取自上面链接中的答案)。如果它不起作用,一个示例会很好,因为多个开发人员可以运行并识别问题。
  • 好吧,如果你仔细看,错误会抱怨“en”语言环境。因此,如果我只使用“en”,我会得到一些奇怪的行为。不能正常工作。除此之外,感觉像是一个 Angular 问题,而不是 ngx-bootstrap... 我正在做一个能够重现此问题的简单项目。
  • 好的,我有一个项目可以重现该问题。我怎么能分享呢?似乎 ngx-bootstrap@3.0.1 没有这个问题,但这似乎仍然是 Angular 优化问题。

标签: angular angular-cli ngx-bootstrap angular7


【解决方案1】:

它看起来像一个错误(因此没有真正的解决方案),并且已在此处报告:

https://github.com/valor-software/ngx-bootstrap/issues/4752

在解决之前可能的解决方法:

  • 降级到 ngx-bootstrap 3.0.1
  • 通过将 buildOptimizer 设置为 false 进行编译

编辑:问题已解决,因此解决方案只需将您​​的 ngx-bootstrap 更新到可用的最新版本

【讨论】:

  • 我都做过。不过更喜欢第一个。谢谢。
  • 编辑:对我来说降级到ngx-bootstrap 3.0.1就足够了。也没有必要降级 Angular 版本。
【解决方案2】:

您使用哪个版本的 ngx-bootstrap? 如果 3.1.1 尝试禁用 "buildOptimizer": false

【讨论】:

  • 是的,3.1.1 但如果你仔细看看我的问题,我已经断言它在没有构建优化的情况下工作。但这是不可接受的。在今天的 Angular 小升级之后,我必须同时保留 ngx-bootstrap@3.0.1 和 @angular/language-service@7.0.1 才能正常工作。如果我升级任何一个或两个,生产构建就会中断。
  • @wpfwannabe 您首先说“是的,3.1.1”,但稍后在评论中您引用版本 3.0.1。您使用的是哪一个,您解决了这个问题吗?
猜你喜欢
  • 1970-01-01
  • 2019-06-14
  • 1970-01-01
  • 2012-01-25
  • 2013-01-15
  • 2013-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多