2017-07-30 2 views
0

J'ai donc un projet phoenix que j'utilise comme application de test. Si je veux utiliser une version locale du code source d'elixir que j'utilise (et faire des modifications), comment puis-je dire à phoenix de l'utiliser? Je veux aussi pouvoir utiliser "iex -S mix" avec. Le elixir: ["~> 1.6.0-dev", path: '/my/local/path/to/elixir'] ci-dessous ne fonctionne pas, mais c'est ce que j'essaie de faire.Comment pointer vers une version locale d'élixir dans un fichier mix.exs?

J'ai déjà essayé d'ajouter ce qui suit et j'obtiens une erreur de syntaxe. L'ajout d'elixir aux dépendances (dans la fonction def deps) n'a pas semblé faire quoi que ce soit. J'utilise aussi kiex et kerl pour la configuration de la version elixir.

defmodule PhoenixTestApp.Mixfile do 
    use Mix.Project 

    def project do 
    [ 
     app: :phoenix_testbed, 
     version: "0.0.1", 
     elixir: ["~> 1.6.0-dev", path: '/my/local/path/to/elixir'] 
     elixirc_paths: elixirc_paths(Mix.env), 
     compilers: [:phoenix, :gettext] ++ Mix.compilers, 
     start_permanent: Mix.env == :prod, 
     aliases: aliases(), 
     deps: deps() 
    ] 
    end 
    ## some more default config code generated by Phoenix 
    # : 
    # : 
end 

Répondre

1

Vous devez utiliser l'élixir local binaire. Par exemple, au lieu de iex -S mix phx.server, faites $YOUR_LOCAL_ELIXIR_PATH/bin/iex -S mix phx.server. D'autres choses comme mix, elixir sont les mêmes.

1

Votre projet est géré par elixir/iex déjà, donc il y a un problème de la poule oeuf essayant de mettre une version elixir/iex fichier à l'intérieur mix.exs.

C'est plutôt la propriété du système d'exploitation, plutôt que du projet, de sélectionner un environnement. Il existe de nombreux gestionnaires de version elixir/erlang dans la nature. Je nommerais (parmi d'autres);

j'utilise ce dernier et je suis heureux avec elle. Il permet de définir une version locale par projet (avec le fichier local .exenv), une version globale et un basculement facile entre les différentes versions.

+0

Merci pour ce conseil! – Nona