Structure de répertoire pour le fichier d'enregistrement des projets
Ce qui serait une idiomatiques structure de répertoire pour un Tapuscrit projet?
Je voudrais les fonctionnalités suivantes dans une telle structure:
- Des répertoires distincts pour Tapuscrit code source et transpiled JavaScript
- Des répertoires distincts pour projet de code source et de code de test
- Mécanisme pour résoudre les références à travers des tests et le code source.
si vous souhaitez des exemples sur la façon de structurer vos projets, il y en a beaucoup sur internet. C'est principalement opinion fondée et pas quelque chose de stackoverflow peut vous aider avec. 🙂
OriginalL'auteur codematix | 2016-03-04
Vous devez vous connecter pour publier un commentaire.
Séparant JS généré à partir de la source TS
Je recommande de générer un seul fichier de sortie. Être un navigateur ou pour le Nœud, c'est juste une meilleure idée. Gardez à l'esprit que la plupart des IDEs pouvez masquer
.gitignore
d fichiers, donc une zone d'un fichier-volet ne devrait pas être un problème à atteindre, même si vous laissez le.js
fichiers assis juste à côté de leur.ts
fichiers.Vous peut utiliser techniquement
--outDir
à la sortie de la façon dont vous le souhaitez par la mise en place de votretsconfig.json
de façon appropriée.La séparation des tests à partir de la source
C'est assez trivial! Simplement de maintenir un
/tests
. Les importations de travail simplement par traversée de répertoires commeimport {MyClass} from "../src/modules/my-class"
(où le../
est de sortir de/tests
).Mécanisme pour résoudre les références
C'est plus difficile dans le navigateur que sur le Nœud, ce dernier en a
require
s de travail hors de la boîte pour Tapuscrit.Sur le navigateur
Recommandons fortement d'aller avec quelque chose comme
webpack
, mais si vous insistez sur la vie de la vie sur l'secondaires dangereux, ici, est un navigateur convivial nécessitent l'utilisation de rapidement effectuer une itération sur Tapuscrit du code sans avoir un processus de construction de l'installation.require()
pour le navigateurDepuis des chemins absolus sont nécessaires pour travailler en web importations, voici comment vous pouvez utiliser mon
require()
hack avec Tapuscrit (typiquement, pour une rapide session de débogage qui ne nécessite pas de reconstruction)./entities/user.ts
Où
Username
etPassword
sontexport
ed classes dans/entities/username.ts
et/entities/password.ts
respectivement.Tandis que le
../entities/
peut sembler superflu, avis qu'il est essentiel pour le navigateur de chemins absolus pour notreUsername
etPassword
entités. 🙂OriginalL'auteur Angad
Regarde comme je le faisais mal. J'ai essayé la structure suivante:
Cependant, j'ai été de tenter de compiler le code source sous
lib
répertoire séparément du code de test soustests
.find src/lib -name *.ts | xargs tsc --declaration --sourceMap --module commonjs --target es5 --listFiles --outDir lib
et puis les tests de code:
find src/tests -name *.ts | xargs tsc --declaration --sourceMap --module commonjs --target es5 --listFiles --outDir tests
De ce fait, les
tests
dossier pour avoir un autrelib
sous-répertoire et untests
sous-répertoire. Ce n'était pas ce que je désirais avoir.Pour résoudre mon problème, j'ai besoin de compiler leur ensemble, donc maintenant, ma commande est:
find src -name *.ts | xargs tsc --declaration --sourceMap --module commonjs --target es5 --listFiles --outDir .
Merci à tous pour l'aide.
Juste un heads-up, il est assez simple pour automatiser la création de
tsconfig.json
à l'aide de le droit outils, tels queAtom TypeScript
sur l'Atome. Vous recommandons fortement de vérifier si vous n'avez pas déjà choisi un répertoire particulier de la structure en raison de processus de construction sonne comme le début d'une lisibilité de la dette 🙂OriginalL'auteur codematix
Il est très difficile de donner des conseils, car cette immense dépend de la taille du projet, des outils, plate-forme, etc.
OriginalL'auteur Denis Biondic