2017-03-13 34 views
0

我按照wiki上的升級說明進行操作後,更新了angular-cli 1.0.0-rc1。我如何在AngularCLI rc.1上進行生產構建?

當我運行ng serve - 應用正確的行爲。

當我運行ng build - 應用正確的行爲。

當我運行ng build --target=production --environment=prod 我得到如下:

➜ web git:(master) ✗ ng build --target=production --environment=prod 
Hash: 1e69750dbc9679bddab0 
Time: 69052ms 
chunk {0} main.8839163bd6c77300ac2a.bundle.js (main) 1.11 MB {3} [initial] [rendered] 
chunk {1} styles.014a26b5c21b6bdedf9e.bundle.css (styles) 440 bytes {4} [initial] [rendered] 
chunk {2} scripts.73c5e350c283a9340ddc.bundle.js (scripts) 146 kB {4} [initial] [rendered] 
chunk {3} vendor.f208e8b0304d6a96ac3d.bundle.js (vendor) 2.54 MB [initial] [rendered] 
chunk {4} inline.1eab99acff53ba884df2.bundle.js (inline) 0 bytes [entry] [rendered] 

ERROR in ../api/src/business/dtos/modifier.dto.ts 
Module build failed: TypeError: Cannot read property 'text' of undefined 
    at Object.getTokenPosOfNode (/Users/jmurphy/projects/business/web/node_modules/typescript/lib/typescript.js:6768:71) 
    at IdentifierObject.TokenOrIdentifierObject.getStart (/Users/jmurphy/projects/business/web/node_modules/typescript/lib/typescript.js:80500:23) 
    at IdentifierObject.TokenOrIdentifierObject.getText (/Users/jmurphy/projects/business/web/node_modules/typescript/lib/typescript.js:80521:77) 
    at refactor.findAstNodes.filter (/Users/jmurphy/projects/business/web/node_modules/@ngtools/webpack/src/loader.js:139:44) 
    at Array.filter (native) 
    at refactor.findAstNodes.forEach.node (/Users/jmurphy/projects/business/web/node_modules/@ngtools/webpack/src/loader.js:138:14) 
    at Array.forEach (native) 
    at _removeDecorators (/Users/jmurphy/projects/business/web/node_modules/@ngtools/webpack/src/loader.js:129:10) 
    at Promise.resolve.then (/Users/jmurphy/projects/business/web/node_modules/@ngtools/webpack/src/loader.js:292:33) 
@ ./src/app/model-labels/model-label.component.ts 3:0-51 
@ ./src/$$_gendir/app/app.module.ngfactory.ts 
@ ./src/main.ts 
@ multi ./src/main.ts 

ERROR in ../api/src/business/dtos/document.dto.ts 
Module build failed: TypeError: Cannot read property 'text' of undefined 
    at Object.getTokenPosOfNode (/Users/jmurphy/projects/business/web/node_modules/typescript/lib/typescript.js:6768:71) 
    at IdentifierObject.TokenOrIdentifierObject.getStart (/Users/jmurphy/projects/business/web/node_modules/typescript/lib/typescript.js:80500:23) 
    at IdentifierObject.TokenOrIdentifierObject.getText (/Users/jmurphy/projects/business/web/node_modules/typescript/lib/typescript.js:80521:77) 
    at refactor.findAstNodes.filter (/Users/jmurphy/projects/business/web/node_modules/@ngtools/webpack/src/loader.js:139:44) 
    at Array.filter (native) 
    at refactor.findAstNodes.forEach.node (/Users/jmurphy/projects/business/web/node_modules/@ngtools/webpack/src/loader.js:138:14) 
    at Array.forEach (native) 
    at _removeDecorators (/Users/jmurphy/projects/business/web/node_modules/@ngtools/webpack/src/loader.js:129:10) 
    at Promise.resolve.then (/Users/jmurphy/projects/business/web/node_modules/@ngtools/webpack/src/loader.js:292:33) 
@ ./src/app/document-viewer/document-viewer.component.ts 2:0-51 
@ ./src/$$_gendir/app/app.module.ngfactory.ts 
@ ./src/main.ts 
@ multi ./src/main.ts 

ERROR in ../api/src/business/dtos/models.dto.ts 
Module build failed: TypeError: Cannot read property 'text' of undefined 
    at Object.getTokenPosOfNode (/Users/jmurphy/projects/business/web/node_modules/typescript/lib/typescript.js:6768:71) 
    at IdentifierObject.TokenOrIdentifierObject.getStart (/Users/jmurphy/projects/business/web/node_modules/typescript/lib/typescript.js:80500:23) 
    at IdentifierObject.TokenOrIdentifierObject.getText (/Users/jmurphy/projects/business/web/node_modules/typescript/lib/typescript.js:80521:77) 
    at refactor.findAstNodes.filter (/Users/jmurphy/projects/business/web/node_modules/@ngtools/webpack/src/loader.js:139:44) 
    at Array.filter (native) 
    at refactor.findAstNodes.forEach.node (/Users/jmurphy/projects/business/web/node_modules/@ngtools/webpack/src/loader.js:138:14) 
    at Array.forEach (native) 
    at _removeDecorators (/Users/jmurphy/projects/business/web/node_modules/@ngtools/webpack/src/loader.js:129:10) 
    at Promise.resolve.then (/Users/jmurphy/projects/business/web/node_modules/@ngtools/webpack/src/loader.js:292:33) 
@ ./src/app/model-sublabel/model-sublabel.component.ts 1:0-46 
@ ./src/$$_gendir/app/app.module.ngfactory.ts 
@ ./src/main.ts 
@ multi ./src/main.ts 

ERROR in ../api/src/business/dtos/lens.dto.ts 
Module build failed: TypeError: Cannot read property 'text' of undefined 
    at Object.getTokenPosOfNode (/Users/jmurphy/projects/business/web/node_modules/typescript/lib/typescript.js:6768:71) 
    at IdentifierObject.TokenOrIdentifierObject.getStart (/Users/jmurphy/projects/business/web/node_modules/typescript/lib/typescript.js:80500:23) 
    at IdentifierObject.TokenOrIdentifierObject.getText (/Users/jmurphy/projects/business/web/node_modules/typescript/lib/typescript.js:80521:77) 
    at refactor.findAstNodes.filter (/Users/jmurphy/projects/business/web/node_modules/@ngtools/webpack/src/loader.js:139:44) 
    at Array.filter (native) 
    at refactor.findAstNodes.forEach.node (/Users/jmurphy/projects/business/web/node_modules/@ngtools/webpack/src/loader.js:138:14) 
    at Array.forEach (native) 
    at _removeDecorators (/Users/jmurphy/projects/business/web/node_modules/@ngtools/webpack/src/loader.js:129:10) 
    at Promise.resolve.then (/Users/jmurphy/projects/business/web/node_modules/@ngtools/webpack/src/loader.js:292:33) 
@ ./src/app/create-lens/create-lens.component.ts 2:0-43 
@ ./src/$$_gendir/app/app.module.ngfactory.ts 
@ ./src/main.ts 
@ multi ./src/main.ts 

ERROR in main.8839163bd6c77300ac2a.bundle.js from UglifyJs 
Unexpected token: name (FooterComponent) [main.8839163bd6c77300ac2a.bundle.js:7,6] 

如何讓我的應用程序正確編譯生產?

更新1: 下面是一個有問題的文件的示例。 ColumnTypes.TEXT是一個公共值。由於這些只是裝飾器,它們沒有外部依賴性。再次,這對非生產版本工作正常。

import {autoserialize} from "cerialize"; 
import {ManyToOne, PrimaryGeneratedColumn, Column, JoinColumn, OneToOne, OneToMany, Table, ColumnTypes, CreateDateColumn} from "./export.dtos"; 

@Table() 
export class DTOModifier { 

    @PrimaryGeneratedColumn() 
    @autoserialize id: number; 

    @Column(ColumnTypes.TEXT, {nullable: true}) 
    @autoserialize label: string; 
} 

其中:

static TEXT: ColumnType; 
+0

必須有與document.dto.ts的問題。嘗試從編譯列表中排除該文件。 – digit

+0

ng build --prod – shammelburg

+0

是否缺少@autoserialize後面的()? – philipooo

回答

0

在做一個生產建立與angluar-CLI> beta.27(我認爲這是測試版27),您都隱含使用名列前茅的時間編譯。

名列前茅的時間編譯才能正常運行,當你從你的模板訪問組件成員是公開的。看起來你有一個組件,其中一些班級成員text設置爲私人。

原因是,ngc(角度編譯器)會從模板中生成一個規則的typescript-class,並且在嘗試編譯此文件時,臨時模板類無法訪問私有組件成員。

編輯:

我不是100%肯定,這其實是你的問題,但是這是我遇到的時候我開始做產品構建一個問題,你可以有同樣的問題,因爲錯誤類似於

+0

添加源問題的文件 –

+0

我認爲這是與_removeDecorators功能和實現 –

相關問題