web-dev-qa-db-ja.com

Herokuでcoffeescriptを実行できますか?

CoffeeScriptで記述されたnode.jsアプリがあります。

Herokuでアプリをホストするには何が必要か疑問に思っています。

ありがとう

50
donald

Herokuでの更新により、coffee-scriptソースのnpmインストールが可能になりました。以下の答えは、Herokuがnode.jsを完全にサポートする前の回避策でした。現在のより良い解決策については、Herokuでnpmからcoffee-scriptを使用する方法を説明する高評価の回答を参照してください。


正直なところ、Peterが提案したようにcoffee -c filenameを使用して事前にコンパイルするのが最善の方法ですが、coffeescriptpreload.jsとして使用してスクリプトを呼び出し、コンパイルする一種の「プリロード」node_moduleがあるのではないかと思います。 ()使用するスクリプト。そうすれば、リポジトリ内の余分なファイルを処理することなく、herokuのノードでネイティブに使用できます。

npm install coffee-script

次に、最初のアプリで、JavaScriptで記述し、コーヒーのコンパイル関数を使用して*.coffeeファイルを呼び出します。

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

そしてyourapp.coffeeで試してみてください

console.log 'It worked!'

これが機能するかどうか、またはそれがその関数の適切な構文であるかどうかはわかりません。 https://github.com/jashkenas/coffee-script/blob/master/lib/coffee-script.js#L24

Rubyでそれを行うことについて質問している場合は、次のようになります。

Rails on Heroku: http://drnicwilliams.com/2010/03/15/using-coffeescript-in-Rails-and-even-)でのcoffeescriptの使用方法に関するチュートリアルon-heroku /

Bistro_carの使用をお勧めします( https://github.com/jnicklas/bistro_car

gem install bistro_car
mkdir -p app/scripts

そしてそれをあなたのRails conf/environment.rb

config.gem 'bistro_car'

*.coffee javascriptアプリをネイティブに実行するための何か他の方法または別の方法を見つけた場合は、この回答を更新しますが、これにより、それを機能させる方法についてのアイデアが得られることを願っています。

さらにいくつかの例を示しますが、それらはすべてRuby vs node.jsも使用しているようです:

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

これが少し役立つことを願っています。

1
slickplaid

Michael Blumeは正しいので、herokuでCoffeeScriptノードアプリを実行するために追加のコードは必要ありません。これは私がそれをした方法です:

現在のバージョンのcoffee-scriptpackage.jsonの依存関係に追加します。これは次のようになります。

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

次に、Procfileのノードアプリのエントリを変更して、ノードの代わりにコーヒーを使用します。 Webエントリが1つしかないアプリの場合、これは次のようになります。

web: coffee app.coffee

これがHerokuで機能するかどうかをテストするには、フォアマンgemを使用してローカルホストで試してみてください。

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

次に、Push to herokuを試してみると、依存関係のインストールで次のようなものが表示されます。

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

その手順に問題があるかどうかはわかりませんが、ランタイム環境のもののためにコードを台無しにしているので、上記の方法は私にはやり過ぎのようです。

これが誰かに役立つことを願っています:)

117
floriankrueger

依存関係にcoffeescriptを含めてから、Procfileに「coffeeindex.coffee」を入れるだけでうまくいくことができました。

サーバーが起動するたびにコンパイルするには起動コストがかかりますが、それ以外は問題ありません。

9
MichaelBlume

Package.jsonにcoffee-scriptを含め、HerokuPATHにnode_modules/coffee-script/binを追加することで、機能するようになりました。

2
Dave Donahue

グーグルで回ったが、はっきりしないようだ。これが、coffeescriptについて言及していないherokuガイドです。 http://devcenter.heroku.com/articles/node-js

コミットしてherokuにプッシュする前にアプリのgitリポジトリでcoffee -c .を実行し(これをデプロイスクリプトの一部としてスクリプト化)、そのプロセスでコンパイルされた.jsコードを使用できると思います。

0
Peter Lyons
  • coffee-scriptpackage.jsonに追加します
  • Profileweb: coffee app.coffeeに変更します

florian.kの回答 を参照してください

0
Dorian

Chris Fungによる カスタムビルドパック はかなり前からあります。最近、Herokuの新しいCedar-14スタックでの動作が停止するまで、数年間使用しています。そこで、Chrisのビルドパックを変更しました。これを使用して、Herokuでcoffeescriptアプリを実行できます 新しいカスタムビルドパック

0
Shiprack