2017-02-21 1 views
2

Angular2를 사용하여 만든 웹 사이트에 문제가 있습니다. Angular CLI로 프레임 워크를 구축했습니다. 필자는 로컬 시스템에서이를 철저히 테스트했으며 완벽하게 작동합니다. 포트 4200에서 "ng serve"호스트를 선택하면 전체 페이지가로드되고 작동합니다. 내 모든 문서는 보푸라기도 통과합니다. 나는 "린트"를 실행하고 경고 나 오류를받지 못했습니다.EC2 서버에서 서브가 작동하지 않음

그러나 내 서버에 업로드하면 "ng serve"가 작동하지 않습니다. 내 서버는 Amazon Web Services (AWS)를 통해 EC2 노드에서 생성 된 Bitnami 이미지입니다. nodejs, npm 및 Angular CLI를 서버에 설치하고 버전이 최신 버전인지 확인했습니다. 모두 다.

내가 처음 명령이 나는이 오류가있어 "NG 봉사"시도 :

Environment configuration does not contain "environmentSource" entry. 

A new environmentSource entry replaces the previous source entry inside environments. 

    To migrate angular-cli.json follow the example below: 

    Before: 

    "environments": { 
     "source": "environments/environment.ts", 
     "dev": "environments/environment.ts", 
     "prod": "environments/environment.prod.ts" 
    } 


    After: 

    "environmentSource": "environments/environment.ts", 
    "environments": { 
     "dev": "environments/environment.ts", 
     "prod": "environments/environment.prod.ts" 

내가 "후"반영하기 위해 내 각-cli.json을 변경 섹션과 "NG 봉사"실행을 명령 다시. (나는 그것이 문제라고 생각하지 않지만 관련 정보라고 생각했다).

ERROR in ./src/main.ts 
Module build failed: TypeError: Cannot read property 'newLine' of undefined 
    at Object.getNewLineCharacter (/opt/bitnami/apache2/htdocs/Logan/ProjX-Eng316/node_modules/typescript/lib/typescript.js:8062:20) 
    at Object.createCompilerHost (/opt/bitnami/apache2/htdocs/Logan/ProjX-Eng316/node_modules/typescript/lib/typescript.js:44978:26) 
    at Object.ngcLoader (/opt/bitnami/apache2/htdocs/Logan/ProjX-Eng316/node_modules/@ngtools/webpack/src/loader.js:350:33) 
@ multi webpack-dev-server/client?http://localhost:4200/ ./src/main.ts 

ERROR in ./src/polyfills.ts 
Module build failed: TypeError: Cannot read property 'newLine' of undefined 
    at Object.getNewLineCharacter (/opt/bitnami/apache2/htdocs/Logan/ProjX-Eng316/node_modules/typescript/lib/typescript.js:8062:20) 
    at Object.createCompilerHost (/opt/bitnami/apache2/htdocs/Logan/ProjX-Eng316/node_modules/typescript/lib/typescript.js:44978:26) 
    at Object.ngcLoader (/opt/bitnami/apache2/htdocs/Logan/ProjX-Eng316/node_modules/@ngtools/webpack/src/loader.js:350:33) 
@ multi ./src/polyfills.ts 

는 지금까지 내가 말할 수있는 내 main.ts 내 polyfill.ts 파일 모두에서 일부 개행 문자가 :

현재 오류가 이것이다. 나는 그들을 보았고 아무것도 발견하지 못했다. 나는 어느 쪽의 파일도 바꾸지 않았다. 이 파일들은 각진 cli에 의해 생성되었으며 나는 스스로 수정하기에 충분히 편하지 않았습니다.

어떻게 이러한 오류를 해결할 수 있습니까? 패키지를 업데이트해야합니까? 내 polyfill 및 주요 타이프 스크립트 파일을 변경해야합니까? 당신이 그들을 살펴해야하는 경우 여기

그 파일은 다음과 같습니다

main.ts :

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 
import { enableProdMode } from '@angular/core'; 
import { environment } from './environments/environment'; 
import { AppModule } from './app/app.module'; 

if (environment.production) { 
    enableProdMode(); 
} 

platformBrowserDynamic().bootstrapModule(AppModule); 

polyfills.ts : 도움을

// This file includes polyfills needed by Angular and is loaded before the app. 
    // You can add your own extra polyfills to this file. 
    import 'core-js/es6/symbol'; 
    import 'core-js/es6/object'; 
    import 'core-js/es6/function'; 
    import 'core-js/es6/parse-int'; 
    import 'core-js/es6/parse-float'; 
    import 'core-js/es6/number'; 
    import 'core-js/es6/math'; 
    import 'core-js/es6/string'; 
    import 'core-js/es6/date'; 
    import 'core-js/es6/array'; 
    import 'core-js/es6/regexp'; 
    import 'core-js/es6/map'; 
    import 'core-js/es6/set'; 
    import 'core-js/es6/reflect'; 

    import 'core-js/es7/reflect'; 
    import 'zone.js/dist/zone'; 

    // If you need to support the browsers/features below, uncomment the import 
    // and run `npm install import-name-here'; 
    // Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html 

    // Needed for: IE9 
    // import 'classlist.js'; 

    // Animations 
    // Needed for: All but Chrome and Firefox, Not supported in IE9 
    // import 'web-animations-js'; 

    // Date, currency, decimal and percent pipes 
    // Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10 
    // import 'intl'; 

    // NgClass on SVG elements 
    // Needed for: IE10, IE11 
    // import 'classlist.js'; 

감사합니다!

+0

NG 봉사는 개발 웹 서버입니다. 프로덕션 환경에서는 사용하지 않아야합니다. 'ng build [--prod]'를 사용하고 실제 웹 서버를 사용하여 dist 디렉토리에서 생성 된 정적 파일을 제공하십시오. 노드 (백엔드가 노드에 쓰여 있지 않은 경우), 서버의 npm 및 angular-cli는 필요하지 않습니다. –

+0

고마워, 그걸 위해 ng build를 사용할 것이다. 그러나, 나는 때때로이 서버를 개발 목적으로 사용합니다. 나는 그 목적을 위해 서브를 사용할 수 있기를 정말로 원합니다. –

+0

동일한 문제에 직면했지만 전 세계적으로 각도 복제를 업그레이드하여 해결되었습니다. –

답변

3

Rj-s의 솔루션이 나를 위해 작동했습니다. 전역으로 설치하려면 npm install -g @angular/cli을 실행하고 로컬로 설치하려면 npm install @angular/cli을 실행하십시오. 이전 angular-cli 패키지를 더 이상 참조하지 않고 있는지 확인한 후입니다.

+0

죄송합니다. 답변으로 선택하는 데 시간이 걸렸습니다.글로벌 재설치를 시도했지만 로컬 설치를 시도하지 않았습니다. 그건 내 문제를 해결. 감사! –

+0

패키지가 이미 각도/cli를 참조 했으므로 각도 CLI 선을 제거했습니다. – Nazeel

9

위의 오류가 계속 지속되면 다음을 시도해보십시오. 작동하길 바랍니다. 와 찾기 -

"environments": { "source": "environments/environment.ts", "dev": "environments/environment.ts", "prod": "environments/environment.prod.ts" }

및 교체

개방 각도-cli.json :

"environmentSource": "environments/environment.ts", "environments": { "dev": "environments/environment.ts", "prod": "environments/environment.prod.ts" }

+1

감사합니다.이 기능이 저에게 잘 작동합니다. –

+0

도움이 되었기 때문에 기쁩니다. :) –

관련 문제