总而言之,我有一个客户端应用程序,它是一个 sinatra 应用程序,但这只是其中的一部分,其他一些部分将完成相关工作,例如下载,因此需要在新进程中生成,这主要是同一个客户端项目的 gem 依赖项所必需的,所以我当然使用一些代码在捆绑器环境中加载:
Dir.chdir(File.expand_path(File.dirname(__FILE__)))
ENV["BUNDLE_GEMFILE"] = File.expand_path("../Gemfile", __FILE__)
require 'bundler'
env = ENV['RACK_ENV'] || 'development'
Bundler.setup
Bundler.require :default, env.to_sym,
但不幸的是,即使没有代码,比如 puts 3,sinatra 应用程序也会启动并监听 4567,这很烦人,我还尝试了模块化方法在文件中写入一个空类
class MyApp < Sinatra::Base;
end
但是sinatra还是从4567开始,挺烦人的,有办法不启动sinatra吗?谢谢。