2014-01-23 4 views
0

F# to JavaScript (및 기타 동적 유형 지정 언어) 컴파일러를 개발했습니다. 컴파일러는 그 자체만으로도 강력하지만, 많은 F # 구조를 번역 할 수 있다는 점에서 사용자 친화적이지 않습니다. 프로젝트를 JavaScript 코드로 변환하려면 명령 줄 실행 파일을 사용해야합니다.F # JavaScript 컴파일러에 대한 F # 프로젝트 템플릿

이것은 여러 이유로 사용자 친화적이지 않고 그 중 하나가 디버깅 중입니다.

그래서 기본 F # 프로젝트처럼 프로그래머가 코드를 작성하고 녹색의 "실행"단추를 클릭하면 컴파일 할 수있는 프로젝트 템플릿 (기본 디렉토리 구조 포함)을 만들고 싶습니다. 프로세스가 시작되고 마지막으로 결과 JavaScript 코드를 실행하는 웹 페이지가 열립니다. Websharper 나 Pit를 사용해 본 사람이라면 누구의 이야기인지 알 수 있습니다.

물론 다른 언어로 번역이 된 경우 "실행"버튼이 다르게 동작하기를 바랍니다. 기본적으로 다른 템플릿이 작업을 수행해야합니다.

내 질문은 : 사전 및 사후 편집 단계에 대한 대안이 있습니까? 컴파일러를 바이너리 실행 파일 대신 라이브러리로 사용할 수도 있습니다.

유용한 문서에 대한 모든 언급을 환영합니다.

+0

정말 흥미로운 프로젝트, 좋은 일 같은데 : F # 프로젝트 구축에 대한 정보를 들어 https://github.com/ZachBray/FunScript/blob/master/Examples/Shared/Launcher.fs

댄 Mohl가 SideWaffle를 사용하여 웹 템플릿의 번호를 구축하고 템플릿! –

답변

4

FunScript 프로젝트 (자바 스크립트 컴파일러 F 번호)는 표시 모듈을 컴파일 (토마스 Petricek에 의해 작성)를 launcher을 사용 example 프로젝트를 가지고 최소한의 웹 서버를 시작하고 브라우저의 기본 웹 페이지를 엽니 다.

FunScript 캔버스 샘플 : Runtime.Run이 작업을 수행

[<ReflectedDefinition>] 
module Program 

open FunScript 

let main() = 
    let canvas = Globals.document.getElementsByTagName_canvas().[0] 
    canvas.width <- 1000. 
    canvas.height <- 800. 
    let ctx = canvas.getContext_2d() 
    ctx.fillStyle <- "rgb(200,0,0)" 
    ctx.fillRect (10., 10., 55., 50.); 
    ctx.fillStyle <- "rgba(0, 0, 200, 0.5)" 
    ctx.fillRect (30., 30., 55., 50.) 

do Runtime.Run(directory="Web") 

.

참조 : http://bloggemdano.blogspot.co.uk/2013/12/simpleweb-and-servicestack-templates.html