我正在尝试使用OCRA将我的 REST 应用程序打包到可执行文件中。我的脚本中需要一些宝石:
require 'rack'
require 'rack/server'
require 'grape'
require 'grape-entity'
require 'rubygems'
我跳过用这个启动服务器:
if not defined?(Ocra)
Rack::Server.start options
end
当我尝试运行 server.exe 时:
Temp/../server.rb:221:in `default_middleware_by_environment':
cannot load such file -- rack/content_length (LoadError)
这意味着它不会检测存在的机架子模块,但未使用因此不包括在内。如果我添加一个require 'rack/content_length' it continues with
无法加载这样的文件—— rack/chunkedEven` 等等。
当我手动中断我的服务器之前,我还不得不调用一些 api 端点来包含所有内容。
我认为我的选择是:
告诉 OCRA 包括 rack 和 grape 的所有子模块,但是编译该列表有点耗时并且会增加文件大小
我已经尝试过
ocra server.rb --gem-full=rack --gem-full=grape
,这让我的服务器启动,但是当调用 API 'rack/mount/strexp' 时再次丢失..在我的脚本中调用 API,但我不知道该怎么做。我无法添加块
Rack::Server.start options
,它只会在我中断服务器时继续。
有什么想法可以实现任一选项,还是有其他解决方案?