CoffeeScriptで記述されたnode.jsアプリがあります。
Herokuでアプリをホストするには何が必要か疑問に思っています。
ありがとう
Herokuでの更新により、coffee-script
ソースのnpm
インストールが可能になりました。以下の答えは、Herokuがnode.js
を完全にサポートする前の回避策でした。現在のより良い解決策については、Herokuでnpm
からcoffee-script
を使用する方法を説明する高評価の回答を参照してください。
正直なところ、Peterが提案したようにcoffee -c filename
を使用して事前にコンパイルするのが最善の方法ですが、coffeescript
をpreload.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
これが少し役立つことを願っています。
Michael Blumeは正しいので、herokuでCoffeeScriptノードアプリを実行するために追加のコードは必要ありません。これは私がそれをした方法です:
現在のバージョンのcoffee-script
をpackage.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]
その手順に問題があるかどうかはわかりませんが、ランタイム環境のもののためにコードを台無しにしているので、上記の方法は私にはやり過ぎのようです。
これが誰かに役立つことを願っています:)
依存関係にcoffeescriptを含めてから、Procfileに「coffeeindex.coffee」を入れるだけでうまくいくことができました。
サーバーが起動するたびにコンパイルするには起動コストがかかりますが、それ以外は問題ありません。
Package.jsonにcoffee-scriptを含め、HerokuPATHにnode_modules/coffee-script/binを追加することで、機能するようになりました。
グーグルで回ったが、はっきりしないようだ。これが、coffeescriptについて言及していないherokuガイドです。 http://devcenter.heroku.com/articles/node-js
コミットしてherokuにプッシュする前にアプリのgitリポジトリでcoffee -c .
を実行し(これをデプロイスクリプトの一部としてスクリプト化)、そのプロセスでコンパイルされた.jsコードを使用できると思います。
coffee-script
をpackage.json
に追加しますProfile
をweb: coffee app.coffee
に変更しますflorian.kの回答 を参照してください
Chris Fungによる カスタムビルドパック はかなり前からあります。最近、Herokuの新しいCedar-14スタックでの動作が停止するまで、数年間使用しています。そこで、Chrisのビルドパックを変更しました。これを使用して、Herokuでcoffeescriptアプリを実行できます 新しいカスタムビルドパック 。