2017-10-09 2 views
0

J'apprends le langageScript et j'ai créé une application très simple que je voudrais créer à l'aide de VSTS, puis déployer en tant qu'application Web sur Azure App Service. Mes très simples étapes de définition de construction sont les suivantes:Exécution de TSC sur l'agent de génération hébergée

  1. « Outil Nœuds Installer (aperçu) » pour installer 6.x Noeud
  2. « NPM » pour lancer « installer NPM » pour mes dépendances (tapuscrit, jQuery, bootstrap)
  3. "ligne de commande" pour exécuter le 'tsc --project tsconfig.json'
  4. "Azure App déployer service" pour déployer l'application

le problème que j'ai est à l'étape 3 quand le compilateur TypeScript est appelé ... J'obtiens une erreur à propos de l'argument de la ligne de commande '--project' car la version de TypeScript installée sur l'agent de build hébergé est v1.4 mais j'ai développé la version 2.5.3.

Comment puis-je obtenir la bonne version de TypeScript compilé à exécuter pour compiler l'application? Cela semble simple, mais je ne trouve pas de réponses qui n'impliquent pas un projet .NET en utilisant MSBuild & NuGet (ce qui n'est certainement pas: HTML, CSS, & TS transpilé à JS).

Répondre

0

Depuis que TypeScript a été installé dans le projet lors de l'exécution de la commande d'installation npm. La manière simple est que:

  1. Ajouter un script dans le fichier package.json pour exécuter tsc commande (section scripts): "tsc":"tsc -project tsconfig.json"
  2. Ajouter une tâche NPM (Commande: custom, Dossier de travail avec package.json: [paquet. Chemin du fichier json], comme $ (Build.SourcesDirectory); Commande et arguments: run tsc)
+0

Si j'ajoute "tsc": "tsc --version" à package.json et exécute "npm run tsc" à partir d'une ligne de commande locale, cela fonctionne. Si je le change en "tsc": "tsc -p." et tentez de l'exécuter, la sortie est créée dans le répertoire de sortie, mais je reçois une série de messages d'erreur npm indiquant que la commande a échoué. – KyKo

+0

Après avoir regardé dans la sortie un peu plus, je pense que le problème est avec la bibliothèque définitivement typée pour jquery basé sur ce message d'erreur: "node_modules/@types/jquery/index.d.ts (2957,63): erreur TS2304: Impossible de trouver le nom Iterable ". Je suppose que cela provoque tous les "npm ERR!" lignes ... qui échoueront la construction. Espérons que l'utilisation d'une version plus ancienne résoudra cela (la dernière version ne le fait pas). – KyKo

+0

Fin de trouver [ce lien] (https://stackoverflow.com/a/43836812/2304351) qui m'a indiqué dans la bonne direction. Juste besoin de savoir ce que l'option 'lib' ajoute afin que je puisse mieux comprendre le problème. Merci pour l'aide @ starain-MSFT – KyKo

0

Par VSTS site officiel, de nos jours, vous avez "tapuscrit 2.0.6 pour Visual Studio 2015"

https://docs.microsoft.com/en-us/vsts/build-release/concepts/agents/hosted

Quoi qu'il en soit, si l'erreur persiste ou que vous souhaitez utiliser une version plus récente Typescript, vous pouvez exécuter la commande à partir de votre machine locale en vous référant à la dépendance trouvée dans package.json.

Pour accéder à ce package de bibliothèque dactylographiée, il est aussi facile:

node_modules/typescript/bin/tsc 

vous pouvez même essayer d'exécuter cette commande localement, par exemple, cette commande localement:

node_modules/typescript/bin/tsc --version 

devrait vous dire la version de la dépendance de TS installé.

J'ai des projets avec TS hébergés sur Azure par VSTS, donc cela devrait se référer à la version locale de TS.

+0

Lorsque j'essaye ceci localement, Windows me demande de choisir le programme pour ouvrir un fichier. Si je choisis le bloc-notes, le résultat est le contenu du fichier "node_modules \ typescript \ bin \ tsc" (le script shell qui démarre le noeud et charge le fichier '../lib/tsc') require ('../ lib/tsc.js ')) – KyKo

+0

@KyKo Il y a quelque chose qui ne va pas dans ce que vous essayez. pouvez-vous essayer avec "noeud" comme préfixe. node node_modules/.... –