c("user.exs")
Compile le fichier en mémoire et ne pas écrire le bytecode (fichier .beam) sur le disque en h/1
exige actuellement (détails ci-dessous), le fichier de faisceau d'être présent sur le disque pour fonctionner. Vous pouvez faire c
stocker le bytecode généré dans le répertoire courant qui fera h/1
travail avec c("user.exs", ".")
:
$ ls
user.exs
$ cat user.exs
defmodule User do
@moduledoc """
Defines the user struct and functions to handle users.
"""
end
$ iex
Erlang/OTP 19 [erts-8.2] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
Interactive Elixir (1.4.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> c("user.exs", ".")
[User]
iex(2)> h User
User
Defines the user struct and functions to handle users.
iex(3)>
BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
(v)ersion (k)ill (D)b-tables (d)istribution
^C
$ ls
Elixir.User.beam user.exs
h/1
repose sur Code.get_docs/2
pour aller chercher la documentation qui appelle :code.get_object_code/1
sur le module. :code.get_object_code/1
selon its docs, "Recherche le chemin de code pour le code objet du module module.Rend {Module, Binary, Filename}
en cas de succès, sinon error
."
Remplacez l'extension du fichier par '.ex'. – mudasobwa
@mudasobwa Problème subsistant, pas différent. –
Normalement, un fichier .exs n'est pas compilé (c'est un fichier de script). La suggestion de @ mudasobwa est donc bonne. Mais si vous n'utilisez pas un fichier de mixage, je vous suggère d'en ajouter un. –