在我的 ruby 控制台上自动加载 Dotenv
Automatically load Dotenv on my ruby console
我想在启动 ruby 控制台时自动 运行 Dotenv.load('.env.development')
,它可以来自 bundle console
或者 irb
.我使用的是 Sinatra,而不是 Rails,我不确定如何在控制台启动时 运行 一些命令。我宁愿在没有 bash 脚本的情况下执行此操作,而是使用工具的内部功能.. 如果有一个地方可以将 ruby 代码放在 ruby 控制台的开头,这将解决我的问题并允许将来的控制台自定义。
你试试看gem的文档(抱歉我的无知,我对sinatra一无所知)?:
安装 gem:
$ gem install dotenv
默认情况下,加载将在当前工作目录中查找名为 .env 的文件。传入多个文件,它们将按顺序加载。为变量设置的第一个值将获胜。
require 'dotenv'
Dotenv.load('file1.env', 'file2.env')
在你的情况下我认为应该是:
require 'dotenv'
Dotenv.load('.env.development')
在 ruby vanilla 我不知道是否可能,我想是的。
您可以在我们的项目目录中创建一个 .irbrc
文件,该文件会在 IRB 会话启动时自动加载。并在该文件中添加如下内容:
begin
require 'dotenv'
Dotenv.load('.env.development')
rescue => e
puts "loading Dotenv failed. because: #{e.message}"
end
阅读有关 .irbrc
file in the Ruby-Docs 的更多信息。
一个选择是创建一个 ./bin/console 脚本 .
我创建了这个 bin/console
文件作为临时解决方案,但我很好奇我是否可以通过 irbrc 获得 @spickermann 的答案(我在此处合并)以使用相同的目录 .irbrc
#!/usr/bin/env ruby
begin
require 'dotenv'
Dotenv.load('.env.development')
rescue => e
puts "loading Dotenv failed. because: #{e.message}"
end
require "irb"
IRB.start(__FILE__)
我想在启动 ruby 控制台时自动 运行 Dotenv.load('.env.development')
,它可以来自 bundle console
或者 irb
.我使用的是 Sinatra,而不是 Rails,我不确定如何在控制台启动时 运行 一些命令。我宁愿在没有 bash 脚本的情况下执行此操作,而是使用工具的内部功能.. 如果有一个地方可以将 ruby 代码放在 ruby 控制台的开头,这将解决我的问题并允许将来的控制台自定义。
你试试看gem的文档(抱歉我的无知,我对sinatra一无所知)?:
安装 gem:
$ gem install dotenv
默认情况下,加载将在当前工作目录中查找名为 .env 的文件。传入多个文件,它们将按顺序加载。为变量设置的第一个值将获胜。
require 'dotenv'
Dotenv.load('file1.env', 'file2.env')
在你的情况下我认为应该是:
require 'dotenv'
Dotenv.load('.env.development')
在 ruby vanilla 我不知道是否可能,我想是的。
您可以在我们的项目目录中创建一个 .irbrc
文件,该文件会在 IRB 会话启动时自动加载。并在该文件中添加如下内容:
begin
require 'dotenv'
Dotenv.load('.env.development')
rescue => e
puts "loading Dotenv failed. because: #{e.message}"
end
阅读有关 .irbrc
file in the Ruby-Docs 的更多信息。
一个选择是创建一个 ./bin/console 脚本
我创建了这个 bin/console
文件作为临时解决方案,但我很好奇我是否可以通过 irbrc 获得 @spickermann 的答案(我在此处合并)以使用相同的目录 .irbrc
#!/usr/bin/env ruby
begin
require 'dotenv'
Dotenv.load('.env.development')
rescue => e
puts "loading Dotenv failed. because: #{e.message}"
end
require "irb"
IRB.start(__FILE__)