我可以在Heroku中运行coffeescript吗?

时间:2011-06-15 10:23:33

标签: node.js heroku coffeescript

我有一个用CoffeeScript编写的node.js应用程序。

我想知道在Heroku上托管应用程序需要什么。

由于

7 个答案:

答案 0 :(得分:117)

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: coffee app.coffee

要测试这是否适用于Heroku,您可以使用foreman gem在localhost上尝试:

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

然后尝试推送到heroku,您将在依赖项安装中看到类似的内容:

-----> Installing dependencies with npm 1.0.8
       coffee-script@1.1.2 ./node_modules/coffee-script 
       jade@0.15.3 ./node_modules/jade 
       ├── mkdirp@0.0.6
       └── commander@0.1.0

不确定该程序是否存在问题,但上面描述的方法对我来说似乎有点过头了,因为你搞乱了运行时环境的代码。

希望这有助于某人:)

答案 1 :(得分:9)

通过在我的依赖项中包含coffeescript然后在我的Procfile中加入'coffee index.coffee',我能够相处得很好

每次服务器启动时编译都会产生启动成本,但除此之外你应该没问题。

答案 2 :(得分:2)

我通过在我的package.json中包含coffee-script并将node_modules / coffee-script / bin添加到我的Heroku PATH来实现它的工作

答案 3 :(得分:1)

由于Heroku的更新,它现在允许安装npm来源coffee-script。下面的答案是在Heroku完全支持node.js之前的解决方法。如需更好的解决方案,请参阅评分较高的答案,说明如何在Heroku上使用coffee-script中的npm


老实说,最好的方法是使用像Peter建议的那样使用coffee -c filename进行编译,但我想知道你是否可以使用某种'preload'preload.js来调用脚本coffeescript作为node_module然后编译()要使用的脚本。这样你就可以在heroku节点中原生使用它们,而无需处理你的仓库中的额外文件。

npm install coffee-script

然后在初始应用程序中,用javascript编写并使用coffee的编译函数调用*.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上的rails中使用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应用的其他方式,我会更新此答案,但希望这会让您了解如何让它运行。

以下是一些示例,但它们似乎都使用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

希望这有点帮助。

答案 4 :(得分:0)

我用Google搜索,但似乎不清楚。这是heroku指南,没有提到coffeescript。 http://devcenter.heroku.com/articles/node-js

我认为您可以在提交并推送到heroku之前在app的git repo中运行coffee -c .(将此脚本作为部署脚本的一部分),然后只使用由此编译的.js代码处理。

答案 5 :(得分:0)

  • coffee-script添加到您的package.json
  • 将您的Profile更改为web: coffee app.coffee

请参阅florian.k's answer

答案 6 :(得分:0)

克里斯·冯(Chris Fung)已经有一段custom buildpack了很长一段时间了。我一直在使用它几年,直到最近它停止使用Heroku上的新Cedar-14 Stack。所以,我修改了Chris的buildpack,你现在可以使用这个new custom buildpack在Heroku上运行coffeescript应用程序。