2016-05-31 145 views
2

最後,我完成了我的角度2應用程序的難題,我想在服務器上看到它。發佈Angular 2應用程序(部署)

我有Linux虛擬主機我正在託管PHP & SQL網站,我想知道如何我可以主持角2應用程序,因爲我使用npm start運行它。

有人告訴我關於亞馬遜EC2,但我不確定它是如何工作的,因爲它是我第一次託管這樣的應用程序。

我看了這個:About publishing Angular 2 application,注意到我需要用JSPM(?)編譯我的應用程序,並以某種方式使用它。所以我試着用它。它在我的應用程序根目錄中創建了jspm_packages文件夾,但我不知道它是什麼意思或如何使用它。

  • 任何幫助如何發佈我的網站託管或Amazon EC2 /任何其他方式,我可以讓其他人看到並使用我的應用程序?我的應用程序是Angular2和Laravel作爲後端。

回答

3

其實這裏有兩個步驟:

對於第二步,服務器可以託管在EC2上。但是你可以注意到你甚至可以用gh-pages在Github上託管它。我認爲這個鏈接可以幫助你:https://gist.github.com/chrisjacob/833223。其實這取決於你的需要...

+0

謝謝,但西隧正是我需要上傳到我的服務器是什麼文件?在你的指南中,我用'app.min.js',vendor和index.html生成了一個dist文件夾。每次.ts文件更新後,我是否需要再次吞下它們? – TheUnreal

+0

您需要上傳'dist'文件夾的內容。是的,您需要在每次更新後再次執行gulp ... –

0

如果你指的是彈性beanstalk nodejs ec2,那麼這個答案是最適合你的,因爲我花了一段時間才弄明白這一點,但事實證明它更容易比我想象:

  1. this link了一些修改我做避免/usr/bin/env: node: No such file or directory問題,我添加了下面的腳本

.ebextensions/angular2deployment.config

files: 
    "/opt/elasticbeanstalk/env.vars" : 
    mode: "000775" 
    owner: root 
    group: users 
    content: | 
     export NPM_CONFIG_LOGLEVEL=error 
     export NODE_PATH=`ls -td /opt/elasticbeanstalk/node-install/node-* | head -1`/bin 
    "/opt/elasticbeanstalk/hooks/appdeploy/pre/50npm.sh" : 
    mode: "000775" 
    owner: root 
    group: users 
    content: | 
     #!/bin/bash 
     . /opt/elasticbeanstalk/env.vars 
     function error_exit 
     { 
     eventHelper.py --msg "$1" --severity ERROR 
     exit $2 
     } 

     #install not-installed yet app node_modules 
     if [ ! -d "/var/node_modules" ]; then 
     mkdir /var/node_modules ; 
     fi 
     if [ -d /tmp/deployment/application ]; then 
     ln -s /var/node_modules /tmp/deployment/application/ 
     fi 

     OUT=$([ -d "/tmp/deployment/application" ] && cd /tmp/deployment/application && $NODE_PATH/node $NODE_PATH/npm install 2>&1) || error_exit "Failed to run npm install. $OUT" $? 
     echo $OUT 
    "/opt/elasticbeanstalk/hooks/configdeploy/pre/50npm.sh" : 
    mode: "000666" 
    owner: root 
    group: users 
    content: | 
     #no need to run npm install during configdeploy 
  1. 刪除node_modules & dist文件夾,如果你有,兩者是不需要的。
  2. 運行npm install && npm start(這一步必須是成功的),請注意,我使用的是angular2的默認package.jsonSee Angular.IO Deployment
  3. 如果#3是成功,那麼你就可以再次
  4. 再刪除node_modules中選擇所有文件&文件夾該項目(確保選擇.ebextensions),然後壓縮它們,不壓縮頂層文件夾(部署時會有子目錄,這會破壞部署)
  5. 現在您可以部署該壓縮文件並享受其樂趣了!

如果您使用MacOS的,在壓縮的同時,MacOS將會將增加MacOS的文件夾,這將打破部署,確保使用的工具,不會增加這些額外的目錄,在我的情況下,我用YemuZip

附加說明:EC2彈性魔豆將運行npm install & npm start,這就是爲什麼我會推薦運行它們,並確保它們是很好的在本地環境

相關問題