2016-02-16 12 views
5

Jestem całkowicie nowym użytkownikiem Azure i Angular2.Wdrażanie usługi Azure Continuous nie powiodło się z Githubem podczas wdrażania projektu Angular 2

obiektywnych

Azure Konfiguracja nieprzerwanego rozmieszczenie z GitHub.

Problem

Azure jest podniesienie zobowiązuje się do głównego oddziału na repozytorium. Ta część jest w porządku. Jednak wdrożenie nie powiodło się z powodu błędu kompilacji.

Oto Szczegóły Wdrożenie:

enter image description here

A oto pełna Log:

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;UseSharedCompilation=false /p:SolutionDir="D:\home\site\repository\LearnJS\\" 
An error has occurred 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" 

Wydaje się, że gospodarz build nie znaleźć moduły kątowe. Rozumiem, że te moduły istnieją w katalogu ./node_modules, który NIE jest wpisany do mojego repozytorium. Mam plik package.json w repozytorium, który wygląda tak:

{ 
    "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" 
    } 
} 

Pytanie

Co muszę zrobić, aby uzyskać Azure ciągnąć tych modułów node.js podczas wdrażania witryny ?

Czy powinienem po prostu sprawdzić w moim katalogu node_modules? Ale wydaje się być przeciwko this question.

Czego próbowałem

zainstalowałem Azure Command Line Interface i próbował uruchomić tego polecenia jako sugerowane przez this post.

azure site deploymentscript --node 

Ale mam ten błąd enter image description here

Aktualizacja 18.02.2016:

Rerun polecenie azure site deploymentscript --node, który generuje dwa pliki: .deployment i deploy.cmd. Zaimportował oba pliki do głównej gałęzi. Patrząc z bliska na pierwszej linii w dzienniku, lazur prowadzi deploy.cmd z katalogu

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

muszę utworzyć katalog deployments\tools w moim projekcie czy też umieścić deploy.cmd w złym miejscu? Nadal mam ten sam błąd kompilacji.

Częściowy plik dziennika PO sprawdzeniu dwóch plików rozmieszczenia.

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'. 

Oto rozmieszczenie.cmd plik:

@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 occurred during web site deployment. 
call :exitSetErrorLevel 
call :exitFromFunction 2>nul 

:exitSetErrorLevel 
exit /b 1 

:exitFromFunction 
() 

:end 
endlocal 
echo Finished successfully. 
+0

Czy używasz ASPNet 5/Core 1.0? –

+0

Zacząłem jako pusty projekt ASP Net, ale klient jest zbudowany z czystym TypeScript i Angular 2 (beta 0). Załączam moje * .csproj do pytania. Używam aktualizacji Visual Studio 2013 5 –

+0

Czy twoja aplikacja jest czysto kliencka? Nie. Kod sieciowy? A może jest to aplikacja NodeJS? –

Odpowiedz

1

podstawie mojego zrozumienia, myślę, że twoje potrzeby było stworzenie statycznego projektu WWW z maszynopis i kątowa 2, a następnie wdrażania statycznej strony internetowej do Azure aplikacji sieci Web z ciągłego wdrażania poprzez GitHub.

Prosty sposób polega na utworzeniu statycznego projektu WWW w VS z narzędziami nodejs, a następnie rozwijaniu tylko dla tych statycznych stron HTML z plikami js skompilowanymi z plików ts, a następnie przypisywania ich do utworzonego repozytorium GitHub i ustawiania ciągłego wdrożenie z GitHub dla Azure WebApp na portalu Azure.

Więc myślę, że możesz spróbować odnieść się do innego odpowiedział Wątek SO Deploying Hexo on Azure.. not sure what i'm missing wiedzieć, jak to zrobić.

0

Skrypt wdrażania węzła działa, problemem jest to, że używasz go na głównym katalogu dysku twardego w nieadministracyjnym wierszu polecenia.

Albo otwórz wiersz polecenia z uprawnieniami administratora lub uruchom go w folderze, w którym użytkownik ma uprawnienia do zapisu (może w folderze Dokumenty).

nodejs deployment script generation

Dodaj wygenerowane pliki do folderu aplikacji sieci Web. Nie trzeba tworzyć VS .csproj, ponieważ jest to aplikacja wyłącznie dla klienta.

Maszynka do pisania jest jedną z twoich 'devDependencies', co oznacza, że ​​działa w twoim środowisku programistycznym, powinna kompilować pliki .ts do plików .js. Powinieneś przekazać te skompilowane pliki .js do repozytorium i umieścić je na swoich stronach.

+0

Dzięki za odpowiedź. Zrobiłem dwa pliki wygenerowanego pliku * .deployment i deploy.cmd do repozytorium. Ale lazur nadal uważa to za aplikację internetową .Net, prawdopodobnie dlatego, że stworzyłem ASP. Projekt NET w pierwszej kolejności. Nadal kończyłem się błędami kompilacji. Zobacz moje aktualizacje, aby poznać szczegóły. –

+0

Pliki deploy.cmd i .deployment muszą znajdować się w katalogu głównym repozytorium. Usuń plik .csproj, może to spowodować, że Kudu pomyśli, że to aplikacja .Net :) –

Powiązane problemy