我有一个用CoffeeScript编写的node.js应用程序。我想知道为了在Heroku上托管应用程序需要什么。谢啦,谢啦
mfpqipee1#
Michael Blume是对的,你不需要任何额外的代码就可以在heroku上运行CoffeeScript节点应用。将当前版本中的coffee-script添加到package.json中的依赖项中。
coffee-script
package.json
{ "name": "My-CoffeeScript-App-on-Heroku", "version": "0.0.1", "dependencies": { "coffee-script": "1.1.2" } }
然后在Procfile中修改node应用的条目,使用coffee而不是node。
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
不确定这个过程是否有问题,但是上面描述的方法对我来说似乎有点过头了,因为你把运行时环境的代码弄得一团糟。
wbgh16ku2#
只要在依赖项中包含coffeescript,然后在Procfile中放入“coffee www.example.com”,我就能很好地沿着index.coffee每次服务器启动时编译都有启动成本,但除此之外应该没问题。
0qx6xfy63#
我在package.json中包含了coffee-script,并在Heroku路径中添加了node_modules/coffee-script/bin,从而使其正常工作
dwthyt8l4#
由于Heroku的更新,它现在允许coffee-script源代码的npm安装。下面的答案是Heroku完全支持node.js之前的一个变通方案。要获得当前更好的解决方案,请参阅评分较高的答案,该答案解释了如何在Heroku上简单地使用npm中的coffee-script。老实说,最好的方法是像Peter建议的那样,使用coffee -c filename来编译它,但我想知道你是否可以有一种“preload”preload.js,它会把使用coffeescript的脚本作为node_module调用,然后compile()要使用的脚本。这样你就可以在heroku上的节点中原生地使用它们,而不必在你的repo中处理额外的文件。
npm
node.js
coffee -c filename
preload.js
coffeescript
node_module
npm install coffee-script
然后在初始化应用程序中,用javascript编写它,并使用coffee的compile函数调用*.coffee文件:
*.coffee
var coffee = require('coffee-script'); coffee.compile('./server.coffee'); // could be coffee.run(file) instead, not sure
在yourapp.coffee中尝试
yourapp.coffee
console.log 'It worked!'
我不确定这是否可行,或者这是否是该函数的正确语法。https://github.com/jashkenas/coffee-script/blob/master/lib/coffee-script.js#L24如果你想用ruby来做,这里有:演练如何在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中
conf/environment.rb
config.gem 'bistro_car'
如果我发现了其他的东西或其他方式来原生运行*.coffee javascript应用程序,我会更新这个答案,但希望这能给予你一些关于如何让它工作的想法。这里还有几个例子,但它们似乎都使用了ruby和node.js:http://www.tangiblecolors.com/first-steps-with-coffeescript-and-how-to-use希望这能帮上点忙。
y53ybaqx5#
我在谷歌上搜索了一下,但似乎不太清楚。这是heroku指南,其中没有提到coffeescript。http://devcenter.heroku.com/articles/node-js我认为您可以在提交并推送到heroku之前在应用的git repo中运行coffee -c .(将此脚本作为部署脚本的一部分),然后使用该进程编译的.js代码。
coffee -c .
i2loujxw6#
Profile
参见florian.k's answer
nbewdwxp7#
Chris Fung开发的custom buildpack已经有一段时间了。我已经用了好几年了,直到最近它才停止与Heroku上新的Cedar-14 Stack一起工作。所以,我修改了Chris的构建包,现在你可以使用这个new custom buildpack在Heroku上运行coffeescript应用程序。
7条答案
按热度按时间mfpqipee1#
Michael Blume是对的,你不需要任何额外的代码就可以在heroku上运行CoffeeScript节点应用。
将当前版本中的
coffee-script
添加到package.json
中的依赖项中。然后在
Procfile
中修改node应用的条目,使用coffee而不是node。要测试这在Heroku上是否有效,您可以使用foreman gem在localhost上尝试:
然后尝试推送到heroku,您将在依赖项安装中看到类似下面的内容:
不确定这个过程是否有问题,但是上面描述的方法对我来说似乎有点过头了,因为你把运行时环境的代码弄得一团糟。
wbgh16ku2#
只要在依赖项中包含coffeescript,然后在Procfile中放入“coffee www.example.com”,我就能很好地沿着index.coffee
每次服务器启动时编译都有启动成本,但除此之外应该没问题。
0qx6xfy63#
我在package.json中包含了coffee-script,并在Heroku路径中添加了node_modules/coffee-script/bin,从而使其正常工作
dwthyt8l4#
由于Heroku的更新,它现在允许
coffee-script
源代码的npm
安装。下面的答案是Heroku完全支持node.js
之前的一个变通方案。要获得当前更好的解决方案,请参阅评分较高的答案,该答案解释了如何在Heroku上简单地使用npm
中的coffee-script
。老实说,最好的方法是像Peter建议的那样,使用
coffee -c filename
来编译它,但我想知道你是否可以有一种“preload”preload.js
,它会把使用coffeescript
的脚本作为node_module
调用,然后compile()要使用的脚本。这样你就可以在heroku上的节点中原生地使用它们,而不必在你的repo中处理额外的文件。然后在初始化应用程序中,用javascript编写它,并使用coffee的compile函数调用
*.coffee
文件:在
yourapp.coffee
中尝试我不确定这是否可行,或者这是否是该函数的正确语法。https://github.com/jashkenas/coffee-script/blob/master/lib/coffee-script.js#L24
如果你想用ruby来做,这里有:
演练如何在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)
并将其添加到Rails
conf/environment.rb
中如果我发现了其他的东西或其他方式来原生运行
*.coffee
javascript应用程序,我会更新这个答案,但希望这能给予你一些关于如何让它工作的想法。这里还有几个例子,但它们似乎都使用了ruby和node.js:
http://www.tangiblecolors.com/first-steps-with-coffeescript-and-how-to-use
希望这能帮上点忙。
y53ybaqx5#
我在谷歌上搜索了一下,但似乎不太清楚。这是heroku指南,其中没有提到coffeescript。http://devcenter.heroku.com/articles/node-js
我认为您可以在提交并推送到heroku之前在应用的git repo中运行
coffee -c .
(将此脚本作为部署脚本的一部分),然后使用该进程编译的.js代码。i2loujxw6#
coffee-script
添加到package.json
Profile
更改为web: coffee app.coffee
参见florian.k's answer
nbewdwxp7#
Chris Fung开发的custom buildpack已经有一段时间了。我已经用了好几年了,直到最近它才停止与Heroku上新的Cedar-14 Stack一起工作。所以,我修改了Chris的构建包,现在你可以使用这个new custom buildpack在Heroku上运行coffeescript应用程序。