如何在没有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 我希望有可能从 lib
到 require
?
有几种方法:
- 使用
require_relative "../lib/app"
- 将
lib
添加到bin/console
中的$LOAD_PATH
:$LOAD_PATH.unshift "./lib"
- 只需在命令行中内联添加即可:
bundle exec ruby -Ilib bin/console
请注意,如果您在应用中使用 require_relative
(您应该使用),那么 lib
并不 在 $LOAD_PATH
中,您应该可以 require "path/to/app"
加载它。
我用 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 我希望有可能从 lib
到 require
?
有几种方法:
- 使用
require_relative "../lib/app"
- 将
lib
添加到bin/console
中的$LOAD_PATH
:$LOAD_PATH.unshift "./lib"
- 只需在命令行中内联添加即可:
bundle exec ruby -Ilib bin/console
请注意,如果您在应用中使用 require_relative
(您应该使用),那么 lib
并不 在 $LOAD_PATH
中,您应该可以 require "path/to/app"
加载它。