Windows로 Flow 최신 버전을 실행해 봤습니다.

7826 단어 JavaScriptNuclideflow

주의


이 글은 2016/06/29시의 내용이다.Flow의 Windows 대응은 현재 진행 중이기 때문에 곧 유행이 지날 수 있습니다.

개시하다


2016/06/29시Flow(v0.270)는 Windows 환경에 대한 공식적인 대응이 없습니다..
Requirements
Flow works with:
Mac OS X
Linux (64-bit)
따라서 WindowsFlow를 어떻게든 사용하고 싶다면OcamlPro team의 빌드 버전 사용할 수 있습니다.과거 Qita의 기사인 이 Ocaml Pro 팀 버전이 소개됐다.
  • Windows에서 flow+glop 모니터링 사용
  • Windows로 Flow를 만져볼게요.
  • 그러나 Ocaml Pro 팀 버전은 2015년 12월 이후 업데이트가 중단됐고 버전은 0.19.1의 구버전을 유지했다.
    이때 플로우Windows Issue의subscribe를 훑어보았을 때 이틀 전에 어떤 사람이 투고한 것을 발견했다Windows로 최신 버전을 구축할 수 있습니다..
    oviava commented 2 days ago
    You can build the latest version directly with OCAML win:
    https://gist.github.com/oviava/9c7f0a5ec2fdcdc737b0a75239e6546f
    이 리뷰를 투고한 오비야바는 위 기스트에 윈도에 대한 작동 방법을 적었다.
    그래서 저도 이걸 참고해서 운전을 해 봤어요.

    사전 준비


    OCPWin 설치


    플로우의 구축에 OCAml이 필요하기 때문에 윈도 버전 2진법의 OCPWin이쪽에서 착수하다을 미리 설치한다.
    oviava의 Gist에서 ocpwin64-20160113-4.01.0+ocp1-full-mingw64.exe를 사용했지만 제가 새로운 ocpwin64-20160113-4.02.1+ocp1-full-mingw64.exe를 살짝 시도해 봤어요.

    안테나를 설치하다


    명령줄에서 flow를 실행하면 ANSI 회피 시퀀스가 음영처리되지만 Windows 7의 명령 프롬프트나 Git Bash인 경우 인식이 불가능해 제어 문자가 흐려져 읽기 어려워 보입니다.
    Windows 7ansicon을 설치하면 이걸 해결할 수 있어서 넣었어요.
    ※ 시도는 안 해봤지만 윈도 10이면 ANSI 회피 시퀀스 지원이 있는 것 같아서 ansicon이 필요 없습니다.

    Flow 구축


    원본에서 Flow를 만듭니다.우선 GiitHub에서 소스를 얻습니다.
    Git clone
    git clone https://github.com/facebook/flow
    
    이후 구축 스크립트make.bat로 이것만 두드리면 간단해진다.Windows 명령 프롬프트를 열고 실행하면 됩니다.그러나 마스터 지점의 상태에 따라 구축이 실패할 수도 있으니 주의하십시오.
    예컨대 2016년 06월 29일에는 최신commit 120140baef42941b786dfa1e0cb2953b32a6882c이면 지었지만 전면commit 92ee96f32c3e327e7bae0e5aae60f8f0050e859c에서 건물이 망가졌으니 주의해야 한다.
    구축 실행
    c:\Users\wadahiro\src\github.com\facebook\flow>make.bat
    
    c:\Users\wadahiro\src\github.com\facebook\flow>REM No echo arguments will be printed in the current state
    find_project_root
    ...
    0.06s flow\flow.cmo                                                    [ done ]
    0.16s flow\flow.cmx                                                    [ done ]
    0.98s flow\flow.byte.exe                                               [ done ]
    1.84s flow\flow.asm.exe                                                [ done ]
    Build Successful in 83.26s. 761 jobs (parallelism 0.8x), 1265 files generated.
    ocp-build: Leaving directory `c:\\Users\wadahiro\src\github.com\facebook\flow'
            1 個のファイルをコピーしました。
    
    그런 다음 구축된 flow.exe를 PATH 통과c:\Users\<my_user>\AppData\Roaming\npm\로 복제합니다.
    flow.복사
    c:\Users\wadahiro\src\github.com\facebook\flow>copy bin\flow.exe c:\Users\<my_user>\AppData\Roaming\npm
            1 個のファイルをコピーしました。
    

    시용하다

    $ flow init
    $ flow check
    Found 0 errors
    
    테스트 오류 사례.다음 내용 작성index.jsindex.js
    // @flow
    
    function foo(n) {
      return n * 2;
    }
    
    foo('bar');
    
    flow check이렇게 하면 잘 돌아가지!
    $ flow check
    index.js:7
      7: foo('bar');
         ^^^^^^^^^^ function call
      4:   return n * 2;
                  ^ string. This type is incompatible with
      4:   return n * 2;
                  ^^^^^ number
    
    
    Found 1 error
    

    Nuclide도 해봤어요.


    oviava의 Gist에는 Windows 환경Nuclide에서 Flow 검사를 하는 방법도 적혀 있다.
    지스트 기록에 따르면 수정c:\Users\<my_user>\.atom\packages\nuclide\pkg\nuclide-flow-base\lib\FlowHelpers.js이 필요하지만 실제로는 오비야바가 누클레이드이 질문의 Pull Request가 제출되어 병합됨에 있다.따라서 최신 버전(v0.14.0)의 Nuclide를 사용하면 이 문제가 발생하지 않을 것이다. 특히 수정할 필요가 없다.
    명령줄에서 검사한 것index.js을 Nuclide를 통해 열어본 결과 아래와 같이 이쪽도 안전하게 작동할 수 있음을 확인했다.

    총결산


    계속 방치되어 있지만 플로우도 드디어 윈도에 본격적으로 대응할 수 있게 됐다.그러나 Windows Issue 플로우 개발자 가벨레비는 다음과 같은 논평을 내놓았다. 아직 사용을 추천하지 않기 때문에 실제 제품의 응용을 조금 더 기다리는 것이 좋다.
    @oviava - yep, as you've noticed Windows support is getting closer! It builds and mostly works, but I wouldn't recommend it quite yet.

    좋은 웹페이지 즐겨찾기