2017-06-06 57 views
0

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

我找不到解决此问题的任何解决方案。所有主要模块都更新到最新版本。谢谢

+0

确保您从模板访问的组件属性是“public”。 – 2017-06-06 14:50:08

回答

0

我的猜测是,如果你要运行ng-serve --prod,你会得到相同的错误。当你没有指定 - 产生许多不同的错误将被忽略。

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

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

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。问题只是在一个不同的文件。

+0

你完全正确!你提供的答案解决了我的问题。首先,我认为这些错误与模块之间的某些不兼容性有关,因为错误不会出现一些变化,而且在我使用ng服务时不会发生。后来,我明白ng服务会跳过一些“生产模式”错误并让应用程序运行。谢谢你,我希望你的回答也能帮助别人 – user3076027

相关问题