ngI18nClosureMode未定义

时间:2019-08-07 06:36:42

标签: angular

我将Angular网站部署到了Firebase,但收到错误消息

  

“未捕获的ReferenceError:未定义ngI18nClosureMode”

这是我在Firebase https://shopping-demo-cd112.firebaseapp.com/中的网站 任何朋友都会收到这样的错误? 谢谢您的帮助!

5 个答案:

答案 0 :(得分:4)

将项目从Angle 7更新到8.2.1之后,我在项目中遇到了同样的问题。 这里的问题是CLI尚未更新,因为我仅更新了angular / core软件包。

请将您的angular-cli更新到8.2.1 ,然后再次构建生产版本,这样您的构建就可以正常运行了。

答案 1 :(得分:2)

尝试将Angular版本降级为“〜8.0.0”。当前存在一个未解决的问题,该问题与Angular在生产模式下构建的包中缺少变量有关。

您可能还希望将有关设置的详细信息发布到以下问题: https://github.com/angular/angular/issues/31595

其他解决方法是将缺少的变量注入包中,如果您可以降级到Angular 8.0.0,则在您的情况下可能没有必要

答案 2 :(得分:1)

就我而言,在运行ng build --prod,然后使用firebase deploy --only hosting:project-name -m "some message"在firebase中部署时出现了错误

我的开发环境在MacOS catalina V 10.15.2终端上运行

我指出了在本地项目文件夹中的 ng-packages 版本与系统中全局安装的版本不一致的原因,如下所述。

如果我做了ng --version

在root上,响应为:

Angular CLI: 8.3.21
Node: 10.14.1
OS: darwin x64
Angular: 
... 

Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.803.21
@angular-devkit/core         8.3.21
@angular-devkit/schematics   8.3.21
@schematics/angular          8.3.21
@schematics/update           0.803.21
rxjs                         6.4.0

但是在项目文件夹中对同一命令的响应是:

Angular CLI: 7.1.4
Node: 10.14.1
OS: darwin x64
Angular: 8.2.14
...

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.11.4
@angular-devkit/core              7.1.4
@angular-devkit/schematics        7.1.4
@schematics/angular               7.1.4
@schematics/update                0.11.4
rxjs                              6.5.4

请注意@angular CLI版本和软件包有何不同。

我是如何解决的?

在项目文件夹中:

 npm install --save-dev @angular/cli@latest
 npm install

之后,您的项目包将被更新。

然后我运行生产版本: ng build --prod,最后使用firebase deploy --only hosting:project-name -m "some message"部署到托管我的公用文件夹的已编译内容的Firebase,错误消失了。

答案 3 :(得分:0)

发生此问题是因为angular的依赖项不匹配。我建议使用以下软件包来更新它们:

https://www.npmjs.com/package/npm-check

使用以下方法安装:

npm install -g npm-check

然后,在项目的根目录下,运行以下命令以运行交互式升级:

npm-check -u

答案 4 :(得分:0)

在尝试了大多数答案之后,对我有所帮助的是在index.html的script-Tag中将ngI18ClosureMode = false声明为全局变量。我知道这不是最好的答案,但我需要尽快解决。 同样,只有当我将应用程序部署到云中,而无法在本地复制它时,这种情况才会发生

/* For minicart and cart */
$item->getProduct()->setName('Custom Name');
/* For checkout page cart items */
$item->setName('Custom  Name');
$item->getProduct()->setIsSuperMode(true);