Vorrei evitare di aggiungere i file JavaScript generati al repository di controllo dell'origine git. Azure Git Deploy supporta i comandi di aggiunta in esecuzione per eseguire la generazione prima di distribuire i file?Esiste un modo per eseguire il compilatore TypeScript come parte di Azure Git Deploy
risposta
Sì, è possibile eseguire una logica arbitraria utilizzando un custom deployment script. Avrai bisogno di includere gli strumenti necessari nel repository, o preferibilmente scaricarli secondo necessità (per evitare di eseguire i binari).
Per ora è possibile generare uno script di distribuzione personalizzato custom deployment script
quindi modificare il comando NPM di utilizzare la versione più recente NODE.EXE (0.8.2) con il seguente comando:
call "D:\Program Files (x86)\nodejs\0.8.2\node.exe" "D:\Program Files (x86)\nodejs\node_modules\npm\bin\npm-cli.js" install --production
OK, ho capito che funziona chiamando esplicitamente questa versione del nodo sia per npm che per il compilatore tsc.Il modulo TS è stato installato in% appdata% \ npm \ node_modules \ typescript. –
con l'aggiornamento di azure-cli è ora possibile generare uno script di distribuzione personalizzato come descritto da David e la variabile di ambiente% NODE_EXE% conterrà la versione node.exe corretta in base al file package.json (e cosa è disponibile in Azure). –
Nel caso qualcuno stia guardando, questo è quello che dovevo fare per farlo funzionare.
In primo luogo, mi assicuro che dattiloscritto sia installato dove il Kudu costruire server può raggiungere, con l'aggiunta di queste righe da qualche parte verso la parte superiore del mio deploy.cmd
lima:
call npm install typescript
IF %ERRORLEVEL% NEQ 0 (
echo Unable to install TypeScript
goto error
)
Questo pone la versione Node-callable di TypeScript in .\node_modules\.bin\tsc.cmd
.
Il file batch che esegue effettivamente la build (richiamabile in vari modi, ma soprattutto come un evento post-generazione) si presenta così:
@echo off
if (%1%=="") goto settsc
cd %1%
:settsc
if exist ".\node_modules\.bin\tsc.cmd" (
set tsc=call ".\node_modules\.bin\tsc.cmd"
goto build
)
if exist "%ProgramFiles(x86)%\Microsoft Sdks\Typescript\0.9\tsc.exe" (
set tsc="%ProgramFiles(x86)%\Microsoft Sdks\Typescript\0.9\tsc.exe"
goto build
)
if exist "%ProgramFiles%\Microsoft Sdks\Typescript\0.9\tsc.exe" (
set tsc="%ProgramFiles%\Microsoft Sdks\Typescript\0.9\tsc.exe"
goto build
)
echo TypeScript compiler not found
exit 999
:build
echo Building TypeScript: Payboard.Site.js (using %tsc%)
%tsc% --sourcemap --out Scripts\Payboard\Payboard.Site.js @tsbuild_Site.txt
echo Building TypeScript: Payboard Widget (using %tsc%)
%tsc% --sourcemap --out Widget\v1.0\Payboard.js @tsbuild_Widget_v10.txt
echo Building TypeScript: App\Payboard.App.js (using %tsc%)
%tsc% --sourcemap --out App\Payboard.App.js @tsbuild_App.txt
Spero che questo aiuti qualcun altro fuori.
E questa è un'altra opzione per una soluzione alternativa che non richiede la distribuzione personalizzata di script, nessun file batch e solo modifiche minime al file di progetto.
Il post del blog con i dettagli è disponibile allo http://manfredlange.blogspot.co.nz/2014/01/aspnet-mvc-typescript-azure-website-and.html. Il codice sorgente per il progetto di esempio indicato nel post del blog è disponibile allo https://bitbucket.org/ml_agileutilities/typescript-sample. C'è un ramo che riproduce il problema e c'è un secondo ramo che include la soluzione.
Si prega di notare che per quanto ne so Microsoft sta lavorando su una soluzione adeguata. Al momento della lettura, la soluzione alternativa potrebbe non essere più necessaria.
Il dattiloscritto può ora essere utilizzato senza script. Assicurati che TypeScript funzioni da VS, quindi funzionerà anche nella build di Kudu. Nota che potresti avere conflitti di versione di TypeScript, vedi per es. this question.
- 1. Include file TypeScript in azure git deploy
- 2. Il compilatore TypeScript diventa lento?
- 3. Esiste un compilatore/interprete per eseguire codice per php 5.3?
- 4. Sklearn: Esiste un modo per eseguire il debug di Pipelines?
- 5. Esiste un modo per eseguire Trac offline?
- 6. Esiste un compilatore come servizio per C++?
- 7. Il deploy/publish web di Azure continua a rimanere bloccato
- 8. Git deploy su MediaTemple DV
- 9. Esiste un modo per visualizzare i file distribuiti in Azure?
- 10. Esiste un compilatore R?
- 11. Come eseguire il programma scritto per il vecchio compilatore?
- 12. come eseguire localmente un WebJab di Azure
- 13. In VS Code, come utilizzare il compilatore alpha Typescript 1.5
- 14. Esiste un modo per utilizzare qualcosa come Console.write per eseguire il debug nel codice XNA?
- 15. Esiste un modo per eseguire il rendering di una pagina HTML senza il modello di visualizzazione?
- 16. Esiste un compilatore C portatile per Windows?
- 17. Esiste un tipo per le funzioni di callback in TypeScript?
- 18. Esiste un modo per eseguire il rendering di SVG in Windows Form?
- 19. Esiste un modo per impostare REPL per eseguire sempre il pprint?
- 20. Esiste un modo per eseguire due animazioni jQuery (correttamente) contemporaneamente?
- 21. [errore] Impossibile eseguire l'obiettivo org.apache.maven.plugins: maven-deploy-plugin: 2.7: deploy
- 22. Il compilatore TypeScript omette il modulo angular-translate importato
- 23. Esiste un modo per eseguire il ping di un indirizzo IP specifico con C?
- 24. Precompila ASP.NET Progetto MVC in Azure (non con Web Deploy)
- 25. Esiste un modo per configurare lo spazio di archiviazione BLOB di Azure per utilizzare il certificato SSL del mio dominio?
- 26. Esiste un modo per eseguire il debug di un sottoprocesso utilizzando pydev?
- 27. Come eseguire il rilascio: eseguire da un determinato tag Git?
- 28. Typescript - Come verificare se esiste un indice di array?
- 29. sottomodulo git foreach - Un modo efficace per eseguire in modo ricorsivo il commit di un modulo figlio?
- 30. Azure: esiste un modo per distribuire diverse dimensioni di istanza per test/produzione
Ho provato questo, ma sembra che lo script di distribuzione personalizzato generato dallo strumento sito azzurro ignori le specifiche del motore del nodo in package.json. Devo aggiornare a 8.x per supportare il compilatore TypeScript. –
Hmmm, non dovrebbe essere il caso, penso. Dovremmo guardare un repository di riproduzioni per dare un senso a questo. –
In realtà, hai ragione, non funziona oggi ma presto lo sarà :) –