La implementación continua de Azure falló con Github al implementar un proyecto de Angular 2

Soy completamente nuevo en Azure y Angular2.

El objective

Configure la implementación continua de Azure con GitHub.

El problema

Azure está recogiendo commits en la twig principal del repository. Entonces esta parte está bien. Sin embargo, la implementación falla debido a un error de compilation.

Aquí está el Despliegue de Detalles:

enter image description here

Y aquí está el Log completo:

Command: "D:\home\site\deployments\tools\deploy.cmd" Handling .NET Web Application deployment. MSBuild auto-detection: using msbuild version '14.0' from 'D:\Program Files (x86)\MSBuild\14.0\bin'. All packages listed in packages.config are already installed. D:\home\site\repository\LearnJS\LearnJS.Web\app\app.component.ts(1,41): error TS2307: Build: Cannot find module 'angular2/core'. [D:\home\site\repository\LearnJS\LearnJS.Web\LearnJS.Web.csproj] D:\home\site\repository\LearnJS\LearnJS.Web\app\app.component.ts(2,46): error TS2307: Build: Cannot find module 'angular2/router'. [D:\home\site\repository\LearnJS\LearnJS.Web\LearnJS.Web.csproj] D:\home\site\repository\LearnJS\LearnJS.Web\app\crisis-form.component.ts(1,25): error TS2307: Build: Cannot find module 'angular2/core'. [D:\home\site\repository\LearnJS\LearnJS.Web\LearnJS.Web.csproj] D:\home\site\repository\LearnJS\LearnJS.Web\app\crisis-form.component.ts(2,22): error TS2307: Build: Cannot find module 'angular2/common'. [D:\home\site\repository\LearnJS\LearnJS.Web\LearnJS.Web.csproj] D:\home\site\repository\LearnJS\LearnJS.Web\app\crisis.component.ts(1,33): error TS2307: Build: Cannot find module 'angular2/core'. [D:\home\site\repository\LearnJS\LearnJS.Web\LearnJS.Web.csproj] D:\home\site\repository\LearnJS\LearnJS.Web\app\crisis.component.ts(2,30): error TS2307: Build: Cannot find module 'angular2/http'. [D:\home\site\repository\LearnJS\LearnJS.Web\LearnJS.Web.csproj] D:\home\site\repository\LearnJS\LearnJS.Web\app\crisis.service.ts(1,48): error TS2307: Build: Cannot find module 'angular2/core'. [D:\home\site\repository\LearnJS\LearnJS.Web\LearnJS.Web.csproj] D:\home\site\repository\LearnJS\LearnJS.Web\app\crisis.service.ts(2,55): error TS2307: Build: Cannot find module 'angular2/http'. [D:\home\site\repository\LearnJS\LearnJS.Web\LearnJS.Web.csproj] D:\home\site\repository\LearnJS\LearnJS.Web\app\crisis.service.ts(4,26): error TS2307: Build: Cannot find module 'rxjs/Observable'. [D:\home\site\repository\LearnJS\LearnJS.Web\LearnJS.Web.csproj] D:\home\site\repository\LearnJS\LearnJS.Web\app\crisis.service.ts(12,16): error TS2304: Build: Cannot find name 'Promise'. [D:\home\site\repository\LearnJS\LearnJS.Web\LearnJS.Web.csproj] D:\home\site\repository\LearnJS\LearnJS.Web\app\hero-form.component.ts(1,25): error TS2307: Build: Cannot find module 'angular2/core'. [D:\home\site\repository\LearnJS\LearnJS.Web\LearnJS.Web.csproj] D:\home\site\repository\LearnJS\LearnJS.Web\app\hero-form.component.ts(2,22): error TS2307: Build: Cannot find module 'angular2/common'. [D:\home\site\repository\LearnJS\LearnJS.Web\LearnJS.Web.csproj] D:\home\site\repository\LearnJS\LearnJS.Web\app\hero.component.ts(1,33): error TS2307: Build: Cannot find module 'angular2/core'. [D:\home\site\repository\LearnJS\LearnJS.Web\LearnJS.Web.csproj] D:\home\site\repository\LearnJS\LearnJS.Web\app\hero.component.ts(2,30): error TS2307: Build: Cannot find module 'angular2/http'. [D:\home\site\repository\LearnJS\LearnJS.Web\LearnJS.Web.csproj] D:\home\site\repository\LearnJS\LearnJS.Web\app\hero.service.ts(1,48): error TS2307: Build: Cannot find module 'angular2/core'. [D:\home\site\repository\LearnJS\LearnJS.Web\LearnJS.Web.csproj] D:\home\site\repository\LearnJS\LearnJS.Web\app\hero.service.ts(2,55): error TS2307: Build: Cannot find module 'angular2/http'. [D:\home\site\repository\LearnJS\LearnJS.Web\LearnJS.Web.csproj] D:\home\site\repository\LearnJS\LearnJS.Web\app\hero.service.ts(4,26): error TS2307: Build: Cannot find module 'rxjs/Observable'. [D:\home\site\repository\LearnJS\LearnJS.Web\LearnJS.Web.csproj] D:\home\site\repository\LearnJS\LearnJS.Web\app\hero.ts(1,18): error TS1148: Build: Cannot compile modules unless the '--module' flag is provided. [D:\home\site\repository\LearnJS\LearnJS.Web\LearnJS.Web.csproj] D:\home\site\repository\LearnJS\LearnJS.Web\app\main.ts(1,28): error TS2307: Build: Cannot find module 'angular2/platform/browser'. [D:\home\site\repository\LearnJS\LearnJS.Web\LearnJS.Web.csproj] D:\home\site\repository\LearnJS\LearnJS.Web\app\main.ts(2,32): error TS2307: Build: Cannot find module 'angular2/router'. [D:\home\site\repository\LearnJS\LearnJS.Web\LearnJS.Web.csproj] Failed exitCode=1, command="D:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" "D:\home\site\repository\LearnJS\LearnJS.Web\LearnJS.Web.csproj" /nologo /verbosity:m /t:Build /t:pipelinePreDeployCopyAllFilesToOneFolder /p:_PackageTempDir="D:\local\Temp\8d33697b325b07b";AutoParameterizationWebConfigConnectionStrings=false;Configuration=Release;UseShanetworkingComstacktion=false /p:SolutionDir="D:\home\site\repository\LearnJS\\" An error has occurnetworking during web site deployment. \r\nC:\Program Files (x86)\SiteExtensions\Kudu\51.50212.2079\bin\scripts\starter.cmd "D:\home\site\deployments\tools\deploy.cmd" 

Parece que el host de compilation no encuentra modules angulares. Entiendo que estos modules existen en el directory ./node_modules que NO está registrado en mi repository. Tengo un file package.json en el repository, que se ve así:

 { "name": "angular2-quickstart", "version": "1.0.0", "scripts": { "tsc": "tsc", "tsc:w": "tsc -w", "lite": "lite-server", "start": "concurrent \"npm run tsc:w\" \"npm run lite\" " }, "license": "ISC", "dependencies": { "angular2": "2.0.0-beta.0", "systemjs": "0.19.6", "es6-promise": "^3.0.2", "es6-shim": "^0.33.3", "reflect-metadata": "0.1.2", "rxjs": "5.0.0-beta.0", "zone.js": "0.5.10" }, "devDependencies": { "concurrently": "^1.0.0", "lite-server": "^1.3.4", "typescript": "^1.7.5" } } 

La pregunta

¿Qué debo hacer para que Azure retire estos modules node.js cuando implemente el sitio?

¿Debo simplemente verificar en mi directory node_modules? Pero parece estar en contra de esta pregunta .

Cosas que he intentado

Instalé Azure Command Line Interface e intenté ejecutar este command como lo sugiere esta publicación .

 azure site deploymentscript --node 

Pero tengo este error enter image description here

Actualización 2016-02-18:

azure site deploymentscript --node , que genera dos files: .deployment y deploy.cmd . Cometió ambos files en la twig principal. Mirando de cerca la primera línea del logging, azure ejecuta un deploy.cmd desde este directory

 D:\home\site\deployments\tools\deploy.cmd 

¿Debo crear un directory deployments\tools en mi proyecto o puse deploy.cmd en el lugar incorrecto? Todavía tengo el mismo error de compilation.

Archivo de logging parcial DESPUÉS de verificar dos files de deployment.

 Command: "D:\home\site\deployments\tools\deploy.cmd" Handling .NET Web Application deployment. MSBuild auto-detection: using msbuild version '14.0' from 'D:\Program Files (x86)\MSBuild\14.0\bin'. All packages listed in packages.config are already installed. D:\home\site\repository\LearnJS\LearnJS.Web\app\app.component.ts(1,41): error TS2307: Build: Cannot find module 'angular2/core'. 

Aquí está el file deploy.cmd:

  @if "%SCM_TRACE_LEVEL%" NEQ "4" @echo off :: ---------------------- :: KUDU Deployment Script :: Version: 1.0.6 :: ---------------------- :: Prerequisites :: ------------- :: Verify node.js installed where node 2>nul >nul IF %ERRORLEVEL% NEQ 0 ( echo Missing node.js executable, please install node.js, if already installed make sure it can be reached from current environment. goto error ) :: Setup :: ----- setlocal enabledelayedexpansion SET ARTIFACTS=%~dp0%..\artifacts IF NOT DEFINED DEPLOYMENT_SOURCE ( SET DEPLOYMENT_SOURCE=%~dp0%. ) IF NOT DEFINED DEPLOYMENT_TARGET ( SET DEPLOYMENT_TARGET=%ARTIFACTS%\wwwroot ) IF NOT DEFINED NEXT_MANIFEST_PATH ( SET NEXT_MANIFEST_PATH=%ARTIFACTS%\manifest IF NOT DEFINED PREVIOUS_MANIFEST_PATH ( SET PREVIOUS_MANIFEST_PATH=%ARTIFACTS%\manifest ) ) IF NOT DEFINED KUDU_SYNC_CMD ( :: Install kudu sync echo Installing Kudu Sync call npm install kudusync -g --silent IF !ERRORLEVEL! NEQ 0 goto error :: Locally just running "kuduSync" would also work SET KUDU_SYNC_CMD=%appdata%\npm\kuduSync.cmd ) goto Deployment :: Utility Functions :: ----------------- :SelectNodeVersion IF DEFINED KUDU_SELECT_NODE_VERSION_CMD ( :: The following are done only on Windows Azure Websites environment call %KUDU_SELECT_NODE_VERSION_CMD% "%DEPLOYMENT_SOURCE%" "%DEPLOYMENT_TARGET%" "%DEPLOYMENT_TEMP%" IF !ERRORLEVEL! NEQ 0 goto error IF EXIST "%DEPLOYMENT_TEMP%\__nodeVersion.tmp" ( SET /p NODE_EXE=<"%DEPLOYMENT_TEMP%\__nodeVersion.tmp" IF !ERRORLEVEL! NEQ 0 goto error ) IF EXIST "%DEPLOYMENT_TEMP%\__npmVersion.tmp" ( SET /p NPM_JS_PATH=<"%DEPLOYMENT_TEMP%\__npmVersion.tmp" IF !ERRORLEVEL! NEQ 0 goto error ) IF NOT DEFINED NODE_EXE ( SET NODE_EXE=node ) SET NPM_CMD="!NODE_EXE!" "!NPM_JS_PATH!" ) ELSE ( SET NPM_CMD=npm SET NODE_EXE=node ) goto :EOF :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Deployment :: ---------- :Deployment echo Handling node.js deployment. :: 1. KuduSync IF /I "%IN_PLACE_DEPLOYMENT%" NEQ "1" ( call :ExecuteCmd "%KUDU_SYNC_CMD%" -v 50 -f "%DEPLOYMENT_SOURCE%" -t "%DEPLOYMENT_TARGET%" -n "%NEXT_MANIFEST_PATH%" -p "%PREVIOUS_MANIFEST_PATH%" -i ".git;.hg;.deployment;deploy.cmd" IF !ERRORLEVEL! NEQ 0 goto error ) :: 2. Select node version call :SelectNodeVersion :: 3. Install npm packages IF EXIST "%DEPLOYMENT_TARGET%\package.json" ( pushd "%DEPLOYMENT_TARGET%" call :ExecuteCmd !NPM_CMD! install --production IF !ERRORLEVEL! NEQ 0 goto error popd ) :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Post deployment stub IF DEFINED POST_DEPLOYMENT_ACTION call "%POST_DEPLOYMENT_ACTION%" IF !ERRORLEVEL! NEQ 0 goto error goto end :: Execute command routine that will echo out when error :ExecuteCmd setlocal set _CMD_=%* call %_CMD_% if "%ERRORLEVEL%" NEQ "0" echo Failed exitCode=%ERRORLEVEL%, command=%_CMD_% exit /b %ERRORLEVEL% :error endlocal echo An error has occurnetworking during web site deployment. call :exitSetErrorLevel call :exitFromFunction 2>nul :exitSetErrorLevel exit /b 1 :exitFromFunction () :end endlocal echo Finished successfully. 

En mi opinión, creo que sus necesidades eran crear un proyecto web estático con TypeScript y Angular 2, y luego implementar el website estático en Azure WebApp con deployment continuo a través de GitHub.

La manera más sencilla es crear un proyecto web estático en VS con las herramientas nodejs, y luego desarrollar solo para estas páginas HTML web estáticas con files js comstackdos a partir de files ts, luego enviarlos a su repository GitHub creado y configurar la implementación continua de GitHub para Azure WebApp en el portal de Azure.

Así que creo que puedes tratar de referirte al otro hilo SO respondido Desplegando Hexo en Azure … no estoy seguro de lo que me falta saber cómo hacerlo.

El script de deployment para Node funciona, el problema es que lo está utilizando en su raíz de disco duro en un símbolo del sistema no administrativo.

Abra el símbolo del sistema con derechos administrativos o ejecútelo en una carpeta donde su usuario tenga permiso de escritura (tal vez en su carpeta Documentos).

generación de script de despliegue nodejs

Agregue los files generados a la carpeta de su aplicación web. No necesita crear un VS.csproj, ya que es una aplicación solo para el cliente.

Typescript es una de sus 'devDependencies', lo que significa que se ejecuta en su entorno de desarrollo, debe comstackr los files .ts en files .js. Debería insert esos files comstackdos .js en su repository y hacer reference a ellos en sus páginas.