Elm前置

Elixir-Mix

2018-11-14  本文已影响7人  你期待的花开

在更深入了解 Elixir 之前,我们必须先学习 mix。在编写大型项目的时候,为了方便管理,我们会把代码分成不同的文件,mix 就是为了管理项目而生的。

目录

新项目

创建新项目,使用 mix new,这个命令能自动生成项目的目录和一些标准的模板文件。

➜  Desktop mix new example
* creating README.md
* creating .gitignore
* creating mix.exs
* creating config
* creating config/config.exs
* creating lib
* creating lib/example.ex
* creating test
* creating test/test_helper.exs
* creating test/example_test.exs

Your Mix project was created successfully.
You can use "mix" to compile it, test it, and more:

    cd example
    mix test

Run "mix help" for more commands.

这篇文章介绍 mix.exs 这个文件,因为我们用这个文件配置应用、依赖、环境信息还有版本。

defmodule Example.Mixfile do
  use Mix.Project

  def project do
    [
      app: :example,
      version: "0.1.0",
      elixir: "~> 1.5",
      start_permanent: Mix.env() == :prod,
      deps: deps()
    ]
  end

  def application do
    [
      extra_applications: [:logger]
    ]
  end

  defp deps do
    []
  end
end

project部分,app变量定义了应用名称,version 定义版本号,elixir 定义了 Elixir的版本号,deps 定义依赖。下面还会讲到,application部分的内容在生产应用文件的时候会用到。

编译

Mix 很智能,能够在需要的时候自动编译改动的内容,不过有时候还是要手动编译项目。
在项目的根目录运行 mix compile 就能编译项目了。
在我们编译项目的时候,mix 会自动创建一个_build目录,查看_build目录,你会看到编译好的文件:example.app

交互

有时候需要用 iex 和我们的项目交互,mix 支持这个功能。编译了项目之后,我们用命令打开一个新的 iex回话。

iex -S mix

这样 iex启动的时候就会把你的应用和依赖都加在到当前环境(这样你可以在 iex中导入和运行编译好的代码)。

管理依赖

要增加新的依赖,首先把它添加到 mix.exs 文件的 deps部分,所有的依赖组成了一个列表,每一项是一个二元元组,第一个值是原子表示的包名称,第二个是包的版本号,版本号可以省略。

举一个有依赖的项目phoenix_slim 作为例子:

def deps do
  [
    {:phoenix, "~> 1.1 or ~> 1.2"},
    {:phoenix_html, "~> 2.3"},
    {:cowboy, "~> 1.0", only: [:dev, :test]},
    {:slime, "~> 0.14"}
  ]
end

在这里,cowboy这个依赖只有在开发和测试环境才需要。

定义依赖,还需要获取依赖 mix deps.get

多个环境

默认情况下,mix 支持三种环境:

$ MIX_ENV=prod mix compile
上一篇下一篇

猜你喜欢

热点阅读