ng服务将无法在EC2服务器上工作

ng服务将无法在EC2服务器上工作

问题描述:

我遇到了使用Angular2创建的网站的问题。我使用Angular CLI构建了框架。我在本地机器上进行了彻底测试,效果非常好。 “ng服务”端口4200上的主机,并且整个页面按其应该加载和运行。我的所有文件都通过ts lint。我运行“ng lint”并没有收到任何警告或错误。ng服务将无法在EC2服务器上工作

但是,当我上传到我的服务器“ng服务”将无法正常工作。我的服务器是通过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

纳克服务是一个开发Web服务器。它不应该用于生产。使用'ng build [--prod]',并使用真实的生产Web服务器来为dist目录中生成的静态文件提供服务。你不需要节点(除非你的后端被写入节点),服务器上的npm和angular-cli。 –

+0

谢谢,我将使用ng build。不过,我仍然有时使用这台服务器进行开发。我真的很想能够使用ng服务来达到这个目的。 –

+0

我面临同样的问题,但通过在全球和本地升级angular-cli得到解决。 –

Rj-s的解决方案为我工作。运行npm install -g @angular/cli以全局安装,然后运行npm install @angular/cli以在本地安装。这是确保您不再引用旧的angular-cli包后。

+0

对不起,我花了一段时间选择这个答案。我尝试过全局重装,但我没有尝试过本地安装。这解决了我的问题。谢谢! –

+0

我删除了角-cli线,因为,包已经提到角度/ cli这是最新的 – Nazeel

如果上面的错误仍然存​​在,那么试试这个:希望它有效。

开角cli.json find-

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

,并替换:

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

+1

感谢这对我很好用 –

+0

我很高兴它帮助。 :) –