2017-03-26 1 views
0

iex에서 @doc을 업데이트하면서 어떻게 보이는지 테스트합니다. 내가 다가올 문제는 업데이트 된 @doc 문서를보기 위해 iex를 종료해야한다는 것입니다. r()을 사용할 때 @doc 변수를 다시로드하는 방법이 있습니까?r (module_name)은 iex에 @doc를 다시로드하지 않습니다.

iex -S mix 
iex> h Coordinate.island/1 
     ## Examples 
     iex> {:ok, coord } = Cordinate.start_link 
     Cordinate.island(coord) 
     :falls_town 

@doc이 (가) 대신 : falls_town 및 save file을 반환하도록 업데이트되었습니다.

iex> r(Coordinate) 
iex> h Coordinate.island/1 
    # issue: still showing the old @doc example 
    ## Examples 
    iex> {:ok, coord } = Cordinate.start_link 
     Cordinate.island(coord) 
     :falls_town # should be :none 
+2

'iex -S mix'에서'r (...) '대신'recompile()'을 실행 해보십시오. – Dogbert

+0

덕분에 많은 덕을 보았습니다! 그래서 나는 현재의 Mix 어플리케이션을 다시 컴파일해야만 doc 변수를 다시로드 할 수 있습니다. –

답변

5

h/1 currently loads the documentation from the compiled .beam files. r/1 메모리에 파일을 컴파일하고 r/1을 실행할 때 h/1이 문서를 다시로드하지 않음을 의미 디스크에 .beam 파일을 작성하지 않습니다 우리가 IEX에서 모듈을 다시로드 할 때

, 우리는 모듈 소스를 컴파일을 코드, 의 내용을 메모리에 업데이트합니다. 디스크의 원래 .beam 파일 인 은 모듈의 첫 번째 정의가 나온 것으로 추정됩니다. 은 전혀 변경되지 않습니다.

Source

당신은 패키지를 컴파일하고 (대신 r/1의) iex에서 recompile/0를 실행하여 디스크에 결과 .beam 파일을 작성할 수 있습니다. 실행 후, h/1에 새 설명서가 표시됩니다.

관련 문제