Angular 2:ng build - 在运行时运行没有错误的错误

时间:2017-06-06 12:48:43

标签: angular heroku

我尝试将我的angular 2应用程序部署到heroku,但是当我尝试构建生产时,会出现一长串错误。我应该提一下,在ng服务上,应用程序运行没有问题和错误。 The list of errors is showed in attached photo

我找不到解决这个问题的方法。所有主要模块都更新到最新版本。谢谢

2 个答案:

答案 0 :(得分:0)

我的猜测是,如果你要运行ng-serve --prod,你会得到同样的错误。如果未指定--prod,则会忽略许多不同的错误。

例如,如果没有--prod,它将编译并且不会警告您在指定的类型上未提及属性引用。现在如果你去改变那个对象类型来输入任何错误就会消失。

如果没有列出您的错误,我相信其中很多都是如上所述的简单错误。您可能需要返回并更新类型,以确保您在* .ts或* .html文件中引用的任何属性都添加到类定义中。

答案 1 :(得分:0)

前几行与您的属性/方法_centerMap设置为private的事实有关。如果您想在模板中使用属性/方法,则需要public(我不确定protected)。

Property X does not exist on type 'Object'很可能与您的类型相关。我认为与服务开发服务器相比,构建生产时类型检查更严格。我假设您的代码中有一个具有属性的对象,它看起来像这样:

public myObject: Object = {
    fillColor: 'someValue',
    // other properties
};

在这种情况下,类型检查失败,因为这些属性未在默认Object上定义。要修复该错误,请同时删除所有类型或将其更改为以下内容:

public myObject: { fillColor: string } = {
    fillColor: 'someValue',
    // other properties
};

如果您在该对象中有很多属性,我建议您创建一个Interface

export default interface MyObject {
    fillColor: string;
}

您可以这样使用:

import MyObject from '/path/to/the/interface';

public myObject: MyObject = {
    fillColor: 'someValue',
    // other properties
};

Property 'height' is private ...错误与前几行相同 - 属性/方法设置为private而不是public。问题出在另一个文件中。