10
votes

Rejoignez plusieurs fichiers Coffeescript dans un seul fichier? (Multiples sous-répertoires)

J'ai un tas de fichiers. Coffee que j'ai besoin de rejoindre un fichier.

J'ai des dossiers configurés comme une application Rails: P>

(function() { }).call(this);


0 commentaires

7 Réponses :


6
votes

Vous pouvez écrire un script shell ou une tâche de râteau pour les combiner en premier, puis compiler. Quelque chose comme:

trouver. -Type f -Name '* .coffee' -Print0 | Xargs -0 Cat> Output.Coffee

Compiler sortie.coffee

ajuster les chemins à vos besoins. Assurez-vous également que le fichier sortie.coffee n'est pas dans le même chemin que vous recherchez avec trouver ou vous entrerez dans une boucle infinie.

http://man.cx/find | http://www.rubyrake.org/taturial/index.html

En outre, vous pouvez être intéressé par ces autres messages sur Stackoverflow concernant la recherche à travers les répertoires:


0 commentaires

0
votes

Alternativement, vous pouvez utiliser le drapeau - BAR BAR, Compilez sur JavaScript, puis peut-être envelopper le JS si nécessaire. Mais cela créerait probablement des problèmes; Par exemple, si vous avez un fichier avec le code xxx

, il n'y a qu'un seul var i déclaration dans le JavaScript résultant et i sera incrémenté. Mais si vous déplacez la déclaration de fonction FOO sur un autre fichier CoffeScript, son i vivrait dans la portée foo de la portée et de l'extérieur i ne serait pas affecté.

SO Concaténant la solution est une solution plus sage, mais il y a toujours un potentiel de confusion là-bas; L'ordre dans lequel vous concaténez votre code va presque certainement dans la matière. Je recommande fortement de modulariser votre code à la place.


0 commentaires


28
votes

du Documentation de Coffescript :

-j, --Join [Fichier]: Avant de compiler, concaténer tous les scripts ensemble dans l'ordre de leur passage et les écrire dans le fichier spécifié. Utile pour construire de grands projets.

Donc, vous pouvez atteindre votre objectif à la ligne de commande (j'utilise Bash) comme ceci: xxx

où File1 - File est les chemins vers le fichier Fichiers CoffeScript que vous souhaitez compiler.


1 commentaires

Ce n'est probablement pas la meilleure idée d'utiliser cela, surtout si vous allez l'utiliser dans un script ou quelque chose parce que c'est obsolète et sera supprimé dans une version future.



1
votes

Utilisez Cake pour les compiler tous dans un (ou plusieurs) fichier (s) .js (s). CakeFile est utilisé comme configuration qui contrôle dans quel ordre vos scripts de café sont compilés - tout à fait utile avec de plus grands projets.

Cake est assez facile à installer et à configurer, appelant un gâteau de Vim pendant que vous modifiez votre projet est alors simplement xxx

et vous pouvez actualiser votre navigateur et voir les résultats.

Comme je suis aussi occupé à apprendre la meilleure façon de structurer les fichiers et d'utiliser des caféscript en combinaison avec une colonne vertébrale et un gâteau, j'ai créé un petit projet sur github pour le garder comme une référence pour moi-même, peut-être que cela vous aidera-t-il peut-être aussi autour du gâteau et des choses de base. Tous les fichiers compilés sont dans www dossier afin que vous puissiez les ouvrir dans votre navigateur et que tous les fichiers source (à l'exception de la configuration des gâteaux) sont dans le dossier SRC . Dans cet exemple, tous les fichiers .coffee sont compilés et combinés dans le fichier de sortie .js .js .js qui est ensuite inclus dans HTML.


0 commentaires

2
votes

Le moyen le plus facile d'utiliser un outil de ligne de commande de café.

Coffee --Outputput Public --Join - Comptepile App

app est mon répertoire de travail qui détient plusieurs sous-répertoires et publics est où ~ Output.js Fichier sera placé. Facile à automatiser ce processus si l'application d'écriture dans Nodejs


0 commentaires

2
votes

Cela m'a aidé ( -o code> répertoire de sortie, -j code> joindre à projet.js, -cw code> compiler et regarder le répertoire de CoffeScript en totalité Profondeur):

coffee -o web/js -j project.js -cw coffeescript


0 commentaires