2011-06-15 91 views
50

我有一個用CoffeeScript編寫的node.js應用程序。我可以在Heroku中運行coffeescript嗎?

我想知道需要什麼才能在Heroku上託管應用程序。

謝謝

+1

據我所知,heroku只託管ruby應用程序。 – Ikke 2011-06-15 10:26:30

+4

它也承載node.js。 – donald 2011-06-15 10:29:54

+0

他們最近添加了它。請注意,如果您想在Heroku的Rails應用程序中運行CoffeeScript,只需將最新的'therubyracer'添加到您的Gemfile中,並且應該設置。 – 2011-06-15 15:06:47

回答

1

由於Heroku的更新,現在允許npm安裝coffee-script源代碼。下面的答案是Heroku完全支持node.js之前的解決辦法。爲了獲得更好的解決方案,請參閱更高評分的答案,解釋如何在Heroku上簡單使用npm上的coffee-script


說實話最好的辦法是使用coffee -c filename像彼得建議事先編譯它,但我不知道,如果你能有一個排序的「預加載」 preload.js,將調用使用coffeescript腳本爲node_module然後編譯()要使用的腳本。這樣,您可以在heroku中的本地節點中使用它們,而無需處理回購庫中的額外文件。

npm install coffee-script 

然後在inital應用程序,它使用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

如果你問在紅寶石做,這裏是這樣的:

演練如何在軌在Heroku上使用的CoffeeScript: http://drnicwilliams.com/2010/03/15/using-coffeescript-in-rails-and-even-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應用程序,我會更新此答案,但希望這會給你一些想法如何讓它工作。

這裏有一對夫婦更多的例子,但他們似乎都使用紅寶石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

希望這有助於一點點。

+0

我認爲斯利克在正確的軌道上。你不需要任何二進制文件來運行'。咖啡文件;你只需要咖啡腳本庫,這是純JS。事實上,'coffee'二進制文件被實現爲純JS(它包裹了CoffeeScript的'command.js')。 – 2011-06-15 15:09:32

+0

至於這篇文章的一些細節:你應該使用'coffee.run'; 'coffee.compile'只是給你一個字符串的JS輸出。 Nic博士在Heroku上使用CoffeeScript在Rails上的帖子已經過時;你應該使用Rails 3.1或[Barista](https://github.com/sutto/barista),而不是bistro_car(它在一年內還沒有更新,除此之外,不支持Rails 3 )。 – 2011-06-15 15:30:54

+0

我剛剛做了一個樣本:https://github.com/lfreneda/how-to-coffeescript-on-heroku – 2015-12-01 17:56:17

0

我GOOGLE了一下,但它似乎不清楚。這裏是heroku指南,它不提及咖啡標記。 http://devcenter.heroku.com/articles/node-js

我認爲你可以在你的應用程序的git repo中運行coffee -c .,然後提交併推送到heroku(腳本這是你的部署腳本的一部分),然後使用該進程編譯的.js代碼。

9

我能夠通過只包括我依賴CoffeeScript中,然後將「咖啡index.coffee」在我Procfile相處得很好得到

有一個啓動的成本,每次編譯你的服務器啓動,但除此之外,你應該沒問題。

2

我得到它通過在我的package.json咖啡腳本並添加node_modules /咖啡腳本/ bin添加到我的Heroku PATH

118

邁克爾·布魯姆是正確的,你不需要任何額外的代碼運行工作在heroku上的CoffeeScript節點應用程序。這是我如何做到的:

將當前版本中的coffee-script添加到您的依賴package.json中。這可能看起來有點像這樣:

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

然後修改在Procfile您的節點的應用程序使用的咖啡,而不是節點的條目。

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

然後嘗試:對於只有一個Web入口的應用程序,這可能看起來像這樣

web: coffee app.coffee 

爲了檢驗這是否會在Heroku上工作,你可以使用工頭寶石嘗試在localhost一推Heroku的,你會看到這樣的事情在依賴安裝:

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

不知道有與程序,但上述方法的問題似乎是大材小用我因爲你搞亂了運行時環境的代碼。

希望這有助於有人:)

+9

這應該是被接受的答案。 – kynan 2012-05-21 00:25:14

+11

CoffeeScript不是全局安裝的,所以你應該使用本地安裝的。更新您的'Procfile',如:'web:node_modules/coffee-script/bin/coffee app.coffee' – 2012-07-11 08:42:24

+0

另外,請確保您的應用程序使用process.env.PORT進行設置... – 2012-09-29 17:34:39

0

還有的是一個custom buildpack相當一段時間現在由Chris Fung提供。我一直在使用它幾年,直到最近它停止與Heroku上的新Cedar-14堆棧一起工作。所以,我修改了Chris的buildpack,你現在可以用這個new custom buildpack在Heroku上運行coffeescript應用程序。

相關問題