web-dev-qa-db-fra.com

Dactylographier compiler sur enregistrer avec Visual Studio 2013?

Je ne parviens pas à utiliser Compile-on-Save pour travailler avec VS2013. J'ai installé VS2013, réinstallé TS 0.9.0.1 et sous "Outils", "Options", TypeScript/Projet/Général, j'ai vérifié les deux options de "Compilation à l'enregistrement". Mais lorsque j'ajoute un nouveau fichier TS à mon projet, puis que je le modifie et l'enregistre, les modifications ne sont pas reflétées dans le fichier .js associé.

Est-ce que je fais quelque chose de mal? Est-ce que quelqu'un d'autre a ce problème?

32
Ken Smith

Ceci a résolu le problème pour moi:

  1. Allez dans Options dans le menu Outils.
  2. Options de développement pour l'éditeur de texte
  3. Options de développement pour TypeScript
  4. Options d'extension pour le projet
  5. Cochez “Compiler automatiquement les fichiers TypeScript qui ne font pas partie du projet”
52
Daniel

J'ai eu la situation suivante: le projet a été créé en utilisant vs2012 et une version antérieure de TypeScript. J'ai mis à niveau vers VS2013 et la dernière version de TypeScript (0.9.1.1) et les scripts n'ont pas été compilés lors de l'enregistrement.

J'ai ensuite exclu le fichier TypeScript de mon projet et l'a ajouté à nouveau à l'aide de l'option Ajouter un fichier existant. Après cela, le fichier TypeScript se compile bien sur save !!

16
rekna

La compilation sur TypeScript 0.9.5 sur save ne fonctionnait plus pour moi sur un projet existant après la mise à niveau vers Web Essentials 1.85 (14 février). J'ai réinstallé les deux en vain, mais après l'avoir vu fonctionner pour de nouveaux projets, j'ai essayé de changer cette ligne dans mon csproj.

<Project ToolsVersion="4.0" />

à

<Project ToolsVersion="12.0"/>

Et comme par magie, compiler sur save a recommencé à fonctionner.

7
cirrus

Essayez de suivre ces instructions:

Compile-on-Save

J'ai eu du mal à comprendre cela aussi, mais je pense avoir réglé le problème. Je pense qu'une partie de la confusion provient des différences d'approche entre WebEssentials et la nouvelle intégration du plugin TypeScript.

J'étais un des premiers utilisateurs de TypeScript et j'ai utilisé l'outil WebEssentials en 2012 pour compiler lors de la sauvegarde. J'avais configuré cela pour générer des fichiers .js et .min.js, qui ont été ajoutés automatiquement au projet.

Lors de la mise à niveau vers VS 2013, je recherchais les mêmes fonctionnalités que le support TypeScript intégré, mais elles n'existent pas (pour autant que je sache).

Je pense plutôt que l'outillage intégré de 2013 couvre à la fois les flux de travail de développement et de production.

Les instructions ci-dessus vous configurent pour la compilation au moment de la construction, qui devrait avoir lieu lors de la publication. Pendant le développement, la fonction "Compiler lors de l'enregistrement" génère les fichiers sur le disque, mais ne les ajoute pas au projet. 

J'ai ensuite réalisé que les fichiers générés n'avaient pas besoin de faire partie du projet comme ils l'étaient auparavant, et pourquoi c'est mieux que la solution WebEssentials (à l'exclusion du manque de fenêtre de prévisualisation!).

4
Brett Postin

Pour moi, même si Compile-on-save fonctionnait (Visual Studio 2013), si quelqu'un d'autre essayait d'exécuter le projet Web, il ne générerait pas automatiquement les fichiers javascript. Dans mon projet, j'ai inclus les fichiers *.js et les fichiers *.js.map pour empêcher IIS de ne pas utiliser la nouvelle version lorsque je modifie les fichiers *.ts. Mais ces fichiers ne sont pas inclus dans le contrôle de source.

J'ai donc ajouté la ligne suivante à la fin du fichier de projet csproj:

<Target Name="AfterBuild">
  <Exec Command="tsc.exe --sourcemap _core.ts" WorkingDirectory="$(MSBuildProjectDirectory)\js" />
</Target>

_core.ts est un fichier dans le dossier js qui - j'en suis sûr - fait référence à tous les fichiers directement ou indirectement via des en-têtes à son début.

/// <reference path="_dependent.ts" />
...

de sorte que tsc.exe traite également tous les fichiers dépendants.

2
Mikaël Mayer

En plus des étapes ci-dessus, si la compilation lors de l'enregistrement ne fonctionne pas encore, marquez votre projet comme projet de démarrage (dans VS 2013 solution Explorer, cliquez avec le bouton droit de la souris sur Définir comme projet de démarrage).

Cette solution a été trouvée sur Codeplex par nicholasjgreen et est publiée dans les commentaires à l'adresse http://TypeScript.codeplex.com/wikipage?title=Compile-on-Save .

1
Eduardo Lucas

J'ai résolu ce problème en ajoutant la fonction à la fin du fichier TypeScript. Cela ne fonctionnait pas lorsque la «nouvelle» fonction était entrée en haut de la page (avant les autres fonctions), mais lorsque je l'ai ajoutée sous la dernière fonction, elle fonctionnait. A seulement pris trois heures!

1
Raymond Starkey

Cette fonctionnalité est un peu plus facile à trouver en utilisant la méthode suivante. (VS2015)

  1. Allez dans Outils> Options
  2. Assurez-vous que "Afficher tous les paramètres" est sélectionné. Ceci est une case à cocher située au bas de la fenêtre.
  3. Mettez " TypeScript " dans la barre de recherche et appuyez sur entrée.
  4. Maintenant, la liste devrait être filtrée. Accédez au paramètre: Editeur de texte> TypeScript> Projet> Général .
  5. Maintenant, sélectionnez “ Compiler automatiquement les fichiers TypeScript ne faisant pas partie du projet ”. Appuyer sur OK.
0
prolink007

Avez-vous ajouté les fichiers TypeScript à l’aide de drag'n'drop? Il se peut que l’action de génération des fichiers ait une valeur incorrecte. Utilisez la fenêtre de propriétés des fichiers (F4 ou alt + enter) et vérifiez l’action de compilation là-bas ...

0
A. K-R