如何在elixir mix项目中读取配置文件

Bat*_*u99 6 parsing file elixir-mix elixir

我正在创建一个elixir项目来搜索文件中的模式.我想将这些模式存储为配置文件,以便在应用程序中轻松更改.我的第一个想法是将这些文件作为exs文件存储在mix项目的config文件夹中.所以,问题是:

  1. 有没有简单的方法将配置存储在关键字列表的文件中?
  2. 我如何在应用程序中加载它?

我看到有像File这样的模块来读取文件,但是没有标准方法来解析elixir中的关键字列表吗?我在想与Rails中的yml文件类似的东西.

bit*_*ker 7

您可以使用读取存储在*.exs文件中的关键字列表Mix.Config.read(path).要将Elixir术语写入*.exs文件,您可以使用Inspect.Algebra.to_doc(%Inspect.Opts{pretty: true})将结果字符串内容写入文件File.write.它的格式不如你手工制作,但它绝对可读.

如果您不介意使用Erlang术语,则可以分别使用:file.consult(path)和阅读和编写:file.write_file(:io_lib.fwrite('~p.\n', [config]), path).

  • 你的意思是`Mix.Config.read!/ 1`,对吗?或者自从这个答案发布以来有变化吗? (3认同)
  • 该文件只是eval'ed.你可以拥有任何你想要的东西.只需检查`Mix.Config.read/1`是如何实现的(它非常简单). (2认同)