最后,我完成了角度2应用程序的难点部分,我想在服务器上看到它。
我有Linux网络托管我主持PHP& SQL网站,我想知道如何托管angular 2应用程序,因为我使用npm start
运行它。
有人告诉我关于亚马逊EC2的问题,但我不确定它是如何工作的,因为它是我第一次托管此类应用程序。
我读到这个:About publishing Angular 2 application并注意到我需要使用JSPM(?)编译我的应用程序并以某种方式使用它。所以我试着用它。它在我的应用根目录中创建了jspm_packages
文件夹,但我不知道它的意义或如何使用它。
答案 0 :(得分:3)
实际上这里有两个步骤:
对于第二步,例如,服务器可以托管在EC2上。但是你可以注意到你甚至可以用gh-pages在Github上托管它。我认为这个链接可以帮助您:https://gist.github.com/chrisjacob/833223。事实上,这取决于你的需要......
答案 1 :(得分:0)
如果你指的是弹性beanstalk nodejs ec2,那么这个答案对你来说是最好的,因为我花了一些时间来解决这个问题,但事实证明它比我想象的要简单:
/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
node_modules
&amp;如果你有dist
文件夹,则两者都不需要。npm install && npm start
(此步骤必须成功),请注意我使用的是angular2的默认package.json
See Angular.IO Deployment node_modules
.ebextensions
),然后压缩它们,不要压缩顶层文件夹(部署时你将有子目录,这将破坏部署)如果您正在使用MacOS,在压缩时,macos会添加macos文件夹,这将破坏部署,请确保使用不会添加此额外目录的工具,在我的情况下,我使用了YemuZip
< / p>
附加说明:EC2弹性豆茎将运行npm install
&amp; npm start
,这就是我建议运行它们并确保它们在您的本地环境中正常的原因