2016-06-07 91 views
6

在Ruby腳本,我可以簡單地這樣做:如何在一個簡單的靈藥腳本中加載一個靈藥庫?

require 'some-gem' 

SomeGem.do_something! 

我該怎麼辦,而無需創建一個全新的混合項目靈藥exs腳本類似的東西?到目前爲止,我已經搜索了谷歌的方式來做到這一點,並閱讀了一些博客文章(such as this),但無法找到一個適當的(簡單的)方法來做到這一點。

具體而言,我想在我的elixir腳本中使用HTTPoison

回答

3

在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測試代碼的同時測試代碼。)

1

沒有混合,這可能有點複雜,但可行。

我想你必須明確添加HTTPoison編譯在exs腳本頂部的路徑。

Elixir提供了一個API Code.expand_path來預先添加到Erlang VM代碼路徑列表開頭的路徑。你可以找到更多關於API here的描述。