How can can I deploy an angular 2 webapp to azure? I guess I need some type of final compilation script.
Thanks in advance.
Open the VS Code and open the project folder path. In VS code search Azure App Service and install. Before deploying to Azure, we must build our Angular app using the below command which will build the Angular project and will create all necessary files to a dist folder.
In order to run angular2 app in azure follow these steps:
ng new testApp
and push to some github repo.npm install azure-cli -g azure site deploymentscript --node
this will create 2 files .deployment and deploy.cmd
--production
from the line:: 3. Install npm packages
so that all dependencies will be installed (including ng cli)
:: 3. Install npm packages
this snippet:
echo Handling Angular build
:: 4. Build ng app
IF EXIST "%DEPLOYMENT_TARGET%\package.json" (
pushd "%DEPLOYMENT_TARGET%"
call :ExecuteCmd "!NODE_EXE!" ./node_modules/@angular/cli/bin/ng build --prod --env=prod --aot
IF !ERRORLEVEL! NEQ 0 goto error
:: the next line is optional to fix 404 error see section #8
call :ExecuteCmd cp "%DEPLOYMENT_TARGET%"/web.config "%DEPLOYMENT_TARGET%"/dist/
IF !ERRORLEVEL! NEQ 0 goto error
popd
)
site\wwwroot
to
site\wwwroot\dist
7. trigger a deployment. (by pushing to github or manually from the azure portal)
8. (optional) for fixing the 404 when refreshing, you need to add a web.config on the root with this content:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="AngularJS" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.html" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
I know this is a bit late but none of the other answers give explicit instructions. Hopefully this can help someone.
I'm assuming you are using Angular-CLI.
Run:
npm install
ng build (depending on your setup you might be able to run npm build)
This creates a folder called ./dist that contains the necessary files for your working website. Then use a script-able FTP client to push all of the content inside of ./dist to the ./site/wwwroot folder of the Azure webapp.
You'll need to use the FTP credentials of the wabapp, as found in the Publish Profile, from your Azure Portal. This Stackoverflow question will hep you with that. Where is "download publish profile" in the new Azure Portal?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With