我有一个用CoffeeScript编写的node.js应用程序。
我想知道在Heroku上托管应用程序需要什么。
由于
答案 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
答案 6 :(得分:0)
克里斯·冯(Chris Fung)已经有一段custom buildpack了很长一段时间了。我一直在使用它几年,直到最近它停止使用Heroku上的新Cedar-14 Stack。所以,我修改了Chris的buildpack,你现在可以使用这个new custom buildpack在Heroku上运行coffeescript应用程序。