组件中的继承使Angular中的构建错误

时间:2018-01-20 07:56:17

标签: angular inheritance build angular-components

我有一个像这样的父组件:

import { Component} from '@angular/core';

@Component({
    selector: 'app-main-parent',
    template: '',
})
export class ParentComponent {
    constructor(protected service) {
        service.doSomething();
    }
}

以及扩展父级的子组件

import { Component} from '@angular/core';
import { ChildService} from './services';

@Component({
    selector: 'app-main-child',
    templateUrl: './child.component.html',
})
export class ChildComponent extends ParentComponent{

    constructor(private _childService: ChildService) {
        super(_childService);
    }
}

并在main.module.ts中添加了以下组件:

import { NgModule } from '@angular/core';
import { ParentComponent,
        ChildComponent } from './components'

@NgModule({
    imports: [
    ...
    ],
    declarations: [
        ParentComponent,
        ChildComponent,
        ...
    ],
    providers: [
    ...
    ]
})
export class MainModule { }

我使用以下命令构建项目:

npm run build

并收到此错误:

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
npm ERR! code ELIFECYCLE
npm ERR! errno 3
npm ERR! proj.panel@0.0.0 build: ng build --aot --prod --stats-json
npm ERR! Exit status 3
npm ERR!
npm ERR! Failed at the proj.panel@0.0.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\user\AppData\Roaming\npm-cache_logs\2018-01-17T10_37_32_166Z-debug.log

如果我从main.module.ts中删除ParentComponent,则会出现此错误:

Cannot determine the module for class ParentComponent in
C:/Users/user/source/repos/proj/web-panel/app/main/components.ts!
Add ParentComponent to the NgModule to fix it.

其他资料:

  1. 如果我使用npm start命令运行项目,它可以正常工作。只在构建中 我遇到了这些错误。
  2. 我没有运行构建命令(ng build --no-aot --prod)但是 错误仍然存​​在。
  3. 我不在任何地方使用ParentComponent,而是使用子组件 延伸。
  4. 对于工具问题:

    • Angular版本:5.0.0
    • 节点版本:6.11.4
    • 平台:Windows 10
    • npm version:5.6.0

2 个答案:

答案 0 :(得分:0)

此错误与RAM消耗有关

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
  • 清除所有temp%temp%文件夹
  • 使用以下脚本将RAM使用量限制为4GB

    node --max_old_space_size=4096 ./node_modules/@angular/cli/bin/ng serve --
    

注意:请注意node_modules

的路径

答案 1 :(得分:0)

所以我搜索了很多,并问我认为可能有帮助的每个人,没有什么是解决方案。

然后我创建了一个新项目并从主项目中复制了所有文件,并且神奇的错误消失了。

问题不在于组件中的继承,还不知道是什么造成了错误