web-dev-qa-db-fra.com

Puis-je utiliser coffeescript dans Heroku?

J'ai une application node.js écrite en CoffeeScript.

Je me demande ce qui est nécessaire pour héberger l'application sur Heroku.

Merci

50
donald

Grâce aux mises à jour avec Heroku, il est désormais possible d’installer npm la source coffee-script. La réponse ci-dessous était une solution de contournement avant que Heroku ne prenne pleinement en charge node.js. Pour une meilleure solution actuellement, veuillez consulter la réponse la mieux notée expliquant comment utiliser simplement coffee-script à partir de npm sur Heroku.


Pour être honnête, le meilleur moyen serait de le compiler au préalable en utilisant coffee -c filename comme l'a suggéré Peter, mais je me demande si vous pourriez avoir une sorte de 'préchargement' preload.js qui appellera les scripts en utilisant coffeescript comme node_module, puis compiler () le script être utilisé. De cette façon, vous pouvez les utiliser de manière native dans node sur heroku sans traiter de fichiers supplémentaires dans votre référentiel.

npm install coffee-script

Ensuite, dans l'application initiale, écrivez-le en javascript et appelez les fichiers *.coffee à l'aide de la fonction de compilation de coffee:

var coffee = require('coffee-script');
coffee.compile('./server.coffee');
// could be coffee.run(file) instead, not sure

et dans yourapp.coffee essayer

console.log 'It worked!'

Je ne suis pas sûr si cela fonctionnerait, ou si c'est même la syntaxe appropriée pour cette fonction. https://github.com/jashkenas/coffee-script/blob/master/lib/coffee-script.js#L24

Si vous demandez comment le faire en Ruby, voici ce qui suit:

Procédure pas à pas pour utiliser coffeescript dans Rails sur Heroku: http://drnicwilliams.com/2010/03/15/using-coffeescript-in-Rails-and-even-on-heroku/

Il suggère d'utiliser bistro_car ( https://github.com/jnicklas/bistro_car )

gem install bistro_car
mkdir -p app/scripts

et l'ajouter à votre Rails conf/environment.rb

config.gem 'bistro_car'

Si je trouve quelque chose d'autre ou un autre moyen d'exécuter nativement des applications javascript *.coffee, je mettrai à jour cette réponse, mais j'espère que cela vous donnera une idée de la façon de la faire fonctionner.

Voici quelques exemples supplémentaires, mais ils semblent tous utiliser Ruby vs node.js également:

http://forrst.com/posts/Doing_CoffeeScript_on_Heroku_a_Ruby_gem-OBk http://www.tangiblecolors.com/first-steps-with-coffeescript-and-how-how- to-how

J'espère que cela aide un peu.

1
slickplaid

Michael Blume a raison et vous n'avez besoin d'aucun code supplémentaire pour exécuter les applications de nœuds CoffeeScript sur heroku. Voici comment je l'ai fait:

Ajoutez le coffee-script dans la version actuelle à vos dépendances dans package.json. Cela pourrait ressembler un peu à ça:

{
  "name": "My-CoffeeScript-App-on-Heroku",
  "version": "0.0.1",
  "dependencies": {
    "coffee-script": "1.1.2"
  }
}

Modifiez ensuite l'entrée de votre application de noeud dans la variable Procfile pour utiliser le café au lieu du noeud. Pour une application avec une seule entrée Web, ceci pourrait ressembler à ceci

web: coffee app.coffee

Pour vérifier si cela fonctionnera sur Heroku, vous pouvez l'essayer sur localhost en utilisant la gemme du contremaître:

$ gem install foreman
$ foreman start
21:13:36 web.1     | started with pid 4711

Ensuite, essayez un Push to heroku et vous verrez quelque chose comme ceci dans l’installation des dépendances:

-----> Installing dependencies with npm 1.0.8
       [email protected] ./node_modules/coffee-script 
       [email protected] ./node_modules/jade 
       ├── [email protected]
       └── [email protected]

Je ne suis pas sûr qu'il y ait des problèmes avec cette procédure, mais la méthode décrite ci-dessus me semble exagérée, car vous bousillez votre code pour les éléments de l'environnement d'exécution.

J'espère que ça aide quelqu'un :)

118
floriankrueger

Je pouvais bien me débrouiller en n'incluant que coffeescript dans mes dépendances, puis en plaçant 'coffee index.coffee' dans mon fichier Procfile.

Il y a un coût de démarrage à compiler à chaque démarrage de votre serveur, mais cela ne devrait pas poser de problème.

9
MichaelBlume

Je l'ai obtenu en incluant coffee-script dans mon package.json et en ajoutant node_modules/coffee-script/bin à mon chemin Heroku PATH

2
Dave Donahue

J'ai cherché sur Google, mais cela ne semble pas clair. Voici le guide heroku, qui ne mentionne pas coffeescript. http://devcenter.heroku.com/articles/node-js

Je pense que vous pouvez simplement exécuter coffee -c . dans le dépôt git de votre application avant de valider, puis dans Push to heroku (script faisant partie de votre script de déploiement), puis utilisez simplement le code .js compilé par ce processus. 

0
Peter Lyons
  • Ajoutez coffee-script à votre package.json
  • Changez votre Profile en web: coffee app.coffee

Voir La réponse de florian.k

0
Dorian

Il y a un buildpack personnalisé autour depuis un certain temps maintenant, par Chris Fung. Je l'utilise depuis quelques années, jusqu'à récemment, quand il a cessé de fonctionner avec le nouveau Cedar-14 Stack sur Heroku. J'ai donc modifié le buildpack de Chris et vous pouvez maintenant utiliser ce nouveau buildpack personnalisé pour exécuter des applications coffeescript sur Heroku.

0
Shiprack