J'essaie de convertir un projet d'animaux de compagnie en TypeScript et je ne semble pas pouvoir utiliser l'option tsc
pour surveiller et compiler mes fichiers. L'aide indique que je dois utiliser l'utilitaire -w
mais il semble qu'il ne puisse pas regarder et compiler toutes les *.ts
dans le répertoire "some" de manière récursive. Cela ressemble à quelque chose tsc
devrait être en mesure de gérer. Quelles sont mes options ?
Réponses
Trop de publicités?Créez un fichier nommé tsconfig.json
dans votre projet Root et inclure les lignes suivantes dans celui-ci :
{
"compilerOptions": {
"emitDecoratorMetadata": true,
"module": "commonjs",
"target": "ES5",
"outDir": "ts-built",
"rootDir": "src"
}
}
Veuillez noter que outDir
doit être le chemin d'accès au répertoire qui recevra les fichiers JS compilés, et rootDir
doit être le chemin du répertoire contenant vos fichiers sources (.ts).
Ouvrez un terminal et exécutez tsc -w
il compilera tout .ts
dans src
dans le répertoire .js
et les stocker dans ts-built
répertoire.
La version bêta de TypeScript 1.5 a introduit la prise en charge d'un fichier de configuration appelé tsconfig.json
. Dans ce fichier, vous pouvez configurer le compilateur, définir des règles de formatage du code et, plus important encore pour vous, lui fournir des informations sur les fichiers TS de votre projet.
Une fois correctement configuré, vous pouvez simplement exécuter le tsc
pour qu'elle compile tout le code TypeScript de votre projet.
Si vous voulez qu'il surveille les fichiers pour des changements, vous pouvez simplement ajouter --watch
au tsc
commandement.
Voici un exemple de fichier tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"declaration": false,
"noImplicitAny": false,
"removeComments": true,
"noLib": false
},
"include": [
"**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]}
Dans l'exemple ci-dessus, j'inclus tous les .ts
dans mon projet (de manière récursive). Notez que vous pouvez également exclure des fichiers en utilisant une balise "exclude"
avec un tableau.
Pour plus d'informations, consultez la documentation : http://www.typescriptlang.org/docs/handbook/tsconfig-json.html
Les autres réponses ont peut-être été utiles il y a des années, mais elles sont désormais dépassées.
Étant donné qu'un projet a un tsconfig exécutez cette commande...
tsc --watch
... pour surveiller les fichiers modifiés et compiler si nécessaire. La documentation explique :
Exécuter le compilateur en mode veille. Surveiller les fichiers d'entrée et déclencher la recompilation en cas de changement. L'implémentation de la surveillance des fichiers et des répertoires peut être configurée en utilisant une variable d'environnement. Voir configurer la veille pour plus de détails.
Pour répondre à la question initiale, l'observation récursive des répertoires est possible même sur les plates-formes qui ne disposent pas d'un support natif, comme l'explique le fichier Configurer la montre docs :
La surveillance des répertoires sur les plates-formes qui ne supportent pas la surveillance récursive des répertoires de manière native dans les nœuds, est supportée par la création récursive d'un observateur de répertoire pour les répertoires enfants en utilisant différentes options sélectionnées par TSC_WATCHDIRECTORY.
Techniquement parlant, vous avez plusieurs options ici :
Si vous utilisez un IDE comme Sublime Text et le plugin MSN intégré pour Typescript : http://blogs.msdn.com/b/interoperability/archive/2012/10/01/sublime-text-vi-emacs-typescript-enabled.aspx vous pouvez créer un système de construction qui compile l'application .ts
source pour .js
automatiquement. Voici comment vous pouvez le faire : Comment configurer un système de construction Sublime pour TypeScript ? .
Vous pouvez définir même de compiler le code source à la destination .js
fichier sur fichier sauvegarder. Il existe un package sublime hébergé sur github : https://github.com/alexnj/SublimeOnSaveBuild pour que cela se produise, il suffit d'inclure l'option ts
extension dans le SublimeOnSaveBuild.sublime-settings
fichier.
Une autre possibilité serait de compiler chaque fichier dans la ligne de commande. Vous pouvez même compiler plusieurs fichiers à la fois en les séparant par des espaces comme ceci : tsc foo.ts bar.ts
. Vérifiez ce fil : Comment puis-je passer plusieurs fichiers sources au compilateur TypeScript ? mais je pense que la première option est plus pratique.
- Réponses précédentes
- Plus de réponses