2014-11-11 4 views
2

Node.js 프로그램을 작성하는 데 CoffeeScript를 사용하고 있습니다. 소스 코드를 소스 코드로 컴파일하면 node-inspector으로 디버깅해도 괜찮습니다. 소스 맵. 그러나Node-inspector가있는 CoffeeScript 소스 디버그

, 내가 coffee-script/register를 사용하여 혼합 자바 스크립트/커피 스크립트 응용 프로그램을 만들려고 :

#!/usr/bin/env node 
require('coffee-script/register'); 
require('../src/client'); 

그런 다음 노드 관리자는 컴파일 된 자바 스크립트 보여줍니다.

소스를 node-inspector에 표시하는 방법은 무엇입니까?

+0

나는 생각하지 않는다. 영형. 컴파일 된 코드의 일부분 만보고 싶다면 에디터 플러그인을 사용하여 선택 항목을 컴파일 할 수 있습니다. 여기에 내가 사용하는 것이있다 : https://github.com/kchmck/vim-coffee-script하지만 대부분의 편집인이 사용할 수 있다고 생각한다. –

답변

3

면책 조항 : 나는 노드 Inspector에서 실제 *.coffee 파일을 사용하면 노드 내부에 적재 된 transpiled 자바 스크립트를 매핑하는 방법을 설명하는 소스 맵 파일을 제공 할 필요가 참조하기 위해 노드 관리자

의 메인테이너입니다/V8 런타임을 커피 스크립트 소스에 제공합니다. 또한 변환 된 자바 스크립트의 파일 이름은 원본 스크립트 이름 (AFAIK)과 달라야합니다.

이것은 require('coffee-script/register')의 문제입니다. 동일한 파일 이름을 유지하면서 coffee 스크립트 소스를 javascript 소스로 변환합니다. 다시 말해, 런타임 (및 노드 관리자)은 *.coffee에 번역 된 자바 스크립트가 포함되어있어 매우 동일한 파일 이름으로 커피 스크립트를 표시 할 수 없다는 것을 알 수 있습니다. 또한 AFAIK, 커피 컴파일러는이 경우 소스 맵을 방출하지 않습니다. 에 다른 파일 이름을 통과

  • 는 소스 맵을 방출

    하고 파일
  • 에 저장 :

    1. 수정 loadFile()coffee-script/register에서 :

      나는 문제를 해결하기 위해 두 가지 방법을 참조 module._compile, 예 : script.coffee.js

  • 수정하여 임베디드 소스 맵을 방출하십시오. 내장 된 소스 맵을 지원하도록 Chrome DevTools 및/또는 노드 검사기를 수정하십시오.

  • 참고 :

    관련 문제