isDevMode / enableProdMode error :Cannot enable prod mode after platform setup

isDevMode / enableProdMode error :Cannot enable prod mode after platform setup

我刚刚将我们的项目升级到 Angular 4.1.0。这还包括将 webpack 升级到 2.2.1,将 ngx-boostrap 升级到 1.9.2 以及其他软件包升级。

升级所有这些后,我在开发模式下使用 webpack 开发服务器测试了所有内容,一切正常。然后我尝试了一个生产 webpack 构建。构建工作正常,但在 运行 连接我们的网站后,我立即收到错误 'Cannot enable prod mode after platform setup'.

使用 Chrome 开发工具进行调查后,我发现 ngx-bootstrap/utils/warn-once.js 在启动期间调用了 isDevMode()。这发生在 main.ts 中调用 enableProdMode() 之前。 angular 代码在检查后不允许更改模式,因此抛出错误。那部分我明白了。

但是,我对 webpack 的了解仅限于让它适用于我们的项目,仅此而已。我不知道这里出了什么问题。是:

1) ngx-bootstrap 在启动时不应该调用 isDevMode()。

2) 我的 webpack 配置不正确,对 isDevMode 的调用应该发生在 main.ts 为 运行 之后(但是 none 我们的任何代码都已更改,因为这是升级前一切正常。

3) 其他

抱歉,这是一个模糊的问题。只是对webpack了解不够,问得更准确些。任何帮助将不胜感激。

谢谢

我在升级到 Angular 4.3.4 时遇到了同样的问题。我做了两件事来修复它:

  1. 升级了全局安装的 @angular/cli 以匹配项目 package.json 中的版本。我使用 @angular/cli 1.4.0,但您可能需要 Angular 4.1.0 的旧版本,我不确定。
  2. 使用该 CLI 版本生成了一个新项目,并将生成的项目的 package.json.angular-cli.jsontsconfig.jsonmain.ts 与正在升级的项目进行了比较。

将 ngx-bootstrap 更新到 1.9.3,此版本已修复该问题。