2017-02-21 4 views
2

Ich habe ein Problem mit einer Website mit Angular2 erstellt. Ich habe das Framework mit Angular CLI erstellt. Ich habe es gründlich auf meiner lokalen Maschine getestet und es funktioniert perfekt. "ng serve" Hosts auf Port 4200 und die gesamte Seite lädt und funktioniert wie es sollte. Alle meine Dokumente gehen auch weiter. Ich lief "ng lint" und erhielt keine Warnungen oder Fehler.ng dienen nicht auf EC2-Server

Allerdings, wenn ich es auf meinen Server hochladen "ng serve" wird nicht funktionieren. Mein Server ist ein Bitnami-Image, das auf einem EC2-Knoten über Amazon Web Services (AWS) erstellt wurde. Ich habe nodejs, npm und Angular CLI auf dem Server installiert und überprüft, ob die Versionen aktuell sind. Sie sind alle.

Als ich versuchte, zuerst die „ng dienen“ Befehl bekam ich diese Fehlermeldung:

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" 

ich meine Winkel cli.json änderte sich die „Nachher:“ widerzuspiegeln Abschnitt und lief die „ng dienen“ Befehl nochmal. (Ich glaube nicht, dass das das Problem war, aber ich dachte, es wären relevante Informationen). diese

Der aktuelle Fehler ist:

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 

Soweit ich es sagen kann, ist, einige newLine Charakter in meinen beiden main.ts und meine polyfill.ts Dateien. Ich habe sie angesehen und nichts gefunden. Ich habe keine Datei geändert. Diese Dateien wurden vom eckigen Cli erstellt und ich bin nicht wirklich bequem genug, um sie selbst zu modifizieren.

Wie kann ich diese Fehler beheben? Muss ich ein Paket aktualisieren? Muss ich meine Polyfill- und Haupttyposkript-Dateien ändern?

Hier sind die Dateien, wenn Sie sie über aussehen müssen:

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'; 

Danke für die Hilfe!

+0

ng dienen, ist ein Entwicklungs-Webserver. Es sollte NICHT in der Produktion verwendet werden. Verwenden Sie 'ng build [--prod]' und verwenden Sie einen echten Produktions-Webserver, um die im Verzeichnis dist erzeugten statischen Dateien zu bedienen. Sie benötigen keinen Knoten (außer Ihr Backend ist in Knoten geschrieben), npm und angular-cli auf dem Server. –

+0

Danke, ich werde ng Build dafür verwenden. Allerdings benutze ich diesen Server immer noch manchmal für Entwicklungszwecke. Ich würde gerne in der Lage sein, ng serve für diesen Zweck zu verwenden. –

+0

Ich sah das gleiche Problem, wurde aber gelöst, indem ich angular-cli global und lokal aufwertete. –

Antwort

3

Rj-s Lösung arbeitete für mich. Führen Sie npm install -g @angular/cli zur globalen Installation und dann npm install @angular/cli zur lokalen Installation aus. Nachdem Sie sichergestellt haben, dass Sie nicht mehr auf das alte angular-cli-Paket verweisen.

+0

Entschuldigung, ich brauchte eine Weile, um dies als Antwort zu wählen.Ich habe versucht, die globale Neuinstallation, aber ich habe nie versucht, die lokale Installation. Das hat mein Problem behoben. Vielen Dank! –

+0

I entfernt Winkel-cli Linie wie das Paket bereits Winkel/cli bezeichnet hatte, die letzte ist – Nazeel

9

Wenn der obige Fehler weiterhin besteht, versuchen Sie Folgendes: hoffe, es funktioniert.

offene Winkel cli.json Find-

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

und Ersetzen durch:

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

+1

danken ist dies für mich gut funktioniert –

+0

Ich bin froh, es hilft. :) –

Verwandte Themen