我可以在Heroku中运行coffeescript吗?

don*_*ald 50 heroku node.js coffeescript

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

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

谢谢

flo*_*ger 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"
  }
}
Run Code Online (Sandbox Code Playgroud)

然后在Procfile使用咖啡而不是节点中修改节点应用程序的条目.对于只有一个Web条目的应用程序,这可能如下所示

web: coffee app.coffee
Run Code Online (Sandbox Code Playgroud)

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

$ gem install foreman
$ foreman start
21:13:36 web.1     | started with pid 4711
Run Code Online (Sandbox Code Playgroud)

然后尝试推送到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
Run Code Online (Sandbox Code Playgroud)

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

希望这有助于某人:)

  • CoffeeScript未全局安装,因此您应该使用本地安装的.更新您的`Procfile`,如:`web:node_modules/coffee-script/bin/coffee app.coffee` (11认同)
  • 我最近再次验证了这一点,并希望与您分享示例代码:https://github.com/floriankrueger/heroku-on-coffee (4认同)

Mic*_*ume 9

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

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


sli*_*aid 1

由于 Heroku 的更新,现在允许npm安装源代码coffee-script。下面的答案是 Heroku 完全支持之前的解决方法node.js。目前要获得更好的解决方案,请参阅评价较高的答案,解释如何简单地使用Heroku 上的coffee-script内容。npm


老实说,最好的方法是coffee -c filename像彼得建议的那样提前编译它,但我想知道您是否可以有一种“预加载” preload.js,它将使用coffeescriptthencompile node_module() 要使用的脚本来调用脚本。这样,您就可以在 heroku 上的节点中本地使用它们,而无需处理存储库中的额外文件。

npm install coffee-script
Run Code Online (Sandbox Code Playgroud)

然后在初始应用程序中,用 JavaScript 编写并*.coffee使用 Coffee 的编译函数调用文件:

npm install coffee-script
Run Code Online (Sandbox Code Playgroud)

并在yourapp.coffee尝试

console.log 'It worked!'
Run Code Online (Sandbox Code Playgroud)

我不确定这是否有效,或者这是否是该函数的正确语法。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
Run Code Online (Sandbox Code Playgroud)

并将其添加到你的 Rails 中conf/environment.rb

config.gem 'bistro_car'
Run Code Online (Sandbox Code Playgroud)

如果我找到其他东西或另一种方式来本地运行*.coffeejavascript 应用程序,我会更新这个答案,但希望这会给您一些关于如何让它工作的想法。

这里还有几个例子,但它们似乎都使用了 ruby​​ 和 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

希望这会有所帮助。