当`require'coffee-script'`时,无法使用Ctrl + C停止Sinatra

时间:2011-05-19 23:38:40

标签: ruby node.js sinatra coffeescript ruby-1.9.2

我在Ubuntu 11.04 64位上运行Ruby 1.9.2p180。

我有最简单的CoffeeScript示例使用Sinatra运行正常,但在按Ctrl+C快捷方式时不会停止。因此每次我必须kill -9并且它变得相当乏味。

app.rb

require 'sinatra'
require 'coffee-script'

get '/' do
  '<script src="/app.js" type="text/javascript"></script>'
end

get '/app.js' do
  coffee :app
end

views/app.coffee

alert 'Foo'

工作在Ruby 1.8.7上进行了少量修改:

require 'rubygems'
require 'sinatra'
require 'coffee-script'
require 'json'

get '/' do
  '<script src="/app.js" type="text/javascript"></script>'
end

get '/app.js' do
  coffee :app
end

当我删除第require 'coffee-script'行时,也可以在1.9.2上运行,但是会给我一个警告:

WARN: tilt autoloading 'coffee_script' in a non thread-safe way; explicit require 'coffee_script' suggested.

使用therubyracer时计算出有效,但node失败。 Ubuntu 10.10存储库中的0.1.97版本是唯一的例外。当使用Natty的0.2.6时,它失败了,当使用nvm安装最新的(0.4.8)时,我无法通过nvm安装0.1.97。

2 个答案:

答案 0 :(得分:1)

无法复制。我在Mac(OS 10.6.7)上运行bash和Ruby 1.9.2p180。我也没有收到tilt警告。

使用The Middleman(Sinatra-based)或Rails 3.1时,我也没有遇到过这个问题;两者都使用相同的coffee-script宝石(就像Tilt一样;我怀疑coffee_script只是一个错字)。

您是否尝试将所有相关宝石(sinatra,coffee-script,tilt,execjs)更新到最新版本?你的系统有什么JS环境(例如,你有node,还是你依赖therubyracer)?

答案 1 :(得分:0)

在Ruby 1.9.2,Sinatra 1.3.2,CoffeeScript 2.2.0和Node 0.6.2上不再出现这种情况。