如何在没有gemspec的情况下使用Gemfile将'lib'添加到LOAD_PATH?

How to add 'lib' to LOAD_PATH using Gemfile without gemspec?

我用 bundle init 开始了一个小项目。实际上我构建了一个应用程序,而不是 gem,所以我决定不使用 .gemspec 文件。 我遇到了无法使用 require 来请求位于 lib 中的文件的问题。例如,在 bundle exec ruby bin/console 我得到:

cannot load such file -- new/gem

对于 gemspec 文件,它将工作,因为它默认具有 require_paths = ["lib"] 选项,在 require "bundler/setup" 之后,您可以使用 require 访问位于 [=14] 的文件=].

如果我不使用 gemspec 文件,我如何提示 Bundler 我希望有可能从 librequire

有几种方法:

  1. 使用require_relative "../lib/app"
  2. lib添加到bin/console中的$LOAD_PATH$LOAD_PATH.unshift "./lib"
  3. 只需在命令行中内联添加即可:bundle exec ruby -Ilib bin/console

请注意,如果您在应用中使用 require_relative(您应该使用),那么 lib 并不 $LOAD_PATH 中,您应该可以 require "path/to/app" 加载它。