NodeJS 我可以在Heroku运行咖啡脚本吗?

mbyulnm0  于 2022-12-26  发布在  Node.js
关注(0)|答案(7)|浏览(146)

我有一个用CoffeeScript编写的node.js应用程序。
我想知道为了在Heroku上托管应用程序需要什么。
谢啦,谢啦

mfpqipee

mfpqipee1#

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中修改node应用的条目,使用coffee而不是node。

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

不确定这个过程是否有问题,但是上面描述的方法对我来说似乎有点过头了,因为你把运行时环境的代码弄得一团糟。

wbgh16ku

wbgh16ku2#

只要在依赖项中包含coffeescript,然后在Procfile中放入“coffee www.example.com”,我就能很好地沿着index.coffee
每次服务器启动时编译都有启动成本,但除此之外应该没问题。

0qx6xfy6

0qx6xfy63#

我在package.json中包含了coffee-script,并在Heroku路径中添加了node_modules/coffee-script/bin,从而使其正常工作

dwthyt8l

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 install coffee-script

然后在初始化应用程序中,用javascript编写它,并使用coffee的compile函数调用*.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
如果你想用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

config.gem 'bistro_car'

如果我发现了其他的东西或其他方式来原生运行*.coffee javascript应用程序,我会更新这个答案,但希望这能给予你一些关于如何让它工作的想法。
这里还有几个例子,但它们似乎都使用了ruby和node.js:
http://www.tangiblecolors.com/first-steps-with-coffeescript-and-how-to-use
希望这能帮上点忙。

y53ybaqx

y53ybaqx5#

我在谷歌上搜索了一下,但似乎不太清楚。这是heroku指南,其中没有提到coffeescript。http://devcenter.heroku.com/articles/node-js
我认为您可以在提交并推送到heroku之前在应用的git repo中运行coffee -c .(将此脚本作为部署脚本的一部分),然后使用该进程编译的.js代码。

i2loujxw

i2loujxw6#

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

参见florian.k's answer

nbewdwxp

nbewdwxp7#

Chris Fung开发的custom buildpack已经有一段时间了。我已经用了好几年了,直到最近它才停止与Heroku上新的Cedar-14 Stack一起工作。所以,我修改了Chris的构建包,现在你可以使用这个new custom buildpack在Heroku上运行coffeescript应用程序。

相关问题