在Ruby腳本,我可以簡單地這樣做:如何在一個簡單的靈藥腳本中加載一個靈藥庫?
require 'some-gem'
SomeGem.do_something!
我該怎麼辦,而無需創建一個全新的混合項目靈藥exs
腳本類似的東西?到目前爲止,我已經搜索了谷歌的方式來做到這一點,並閱讀了一些博客文章(such as this),但無法找到一個適當的(簡單的)方法來做到這一點。
具體而言,我想在我的elixir腳本中使用HTTPoison
。
在Ruby腳本,我可以簡單地這樣做:如何在一個簡單的靈藥腳本中加載一個靈藥庫?
require 'some-gem'
SomeGem.do_something!
我該怎麼辦,而無需創建一個全新的混合項目靈藥exs
腳本類似的東西?到目前爲止,我已經搜索了谷歌的方式來做到這一點,並閱讀了一些博客文章(such as this),但無法找到一個適當的(簡單的)方法來做到這一點。
具體而言,我想在我的elixir腳本中使用HTTPoison
。
在Elixir中沒有像Ruby那樣的全局包安裝。儘管在技術上可能將依賴關係編譯爲.beam
文件,並將它們添加到腳本的加載路徑中(如鏈接的文章所做的那樣),但如果您想要的行爲與Ruby相似,我會建議您使用mix run
運行加載了所有項目依賴關係的任意腳本。
與所有你想在mix.exs
指定的依賴性創建一個全球mix
項目,寫在任何.exs
文件代碼(不必在同一文件夾中),並通過
cd /path/to/mix/project && mix run /path/to/.exs
執行它你甚至可以創建一個封裝外殼腳本,通過調用my-elixir script.exs
自動完成上述操作。
(我經常在使用像HTTPoison和/或Poison這樣的常見依賴關係的StackOverflow測試代碼的同時測試代碼。)
沒有混合,這可能有點複雜,但可行。
我想你必須明確添加HTTPoison
編譯在exs腳本頂部的路徑。
Elixir提供了一個API Code.expand_path
來預先添加到Erlang VM代碼路徑列表開頭的路徑。你可以找到更多關於API here的描述。