누구든지 서버 측 코드를 디버깅하는 좋은 방법을 알고 있습니까? Node.js 디버그를 활성화 한 다음 node-inspector를 사용하려고 시도했지만 내 코드가 표시되지 않습니다.
나는 console.log를 사용하지만 이것은 매우 비효율적입니다.
업데이트 : Linux 컴퓨터에서 다음 절차가 작동하는 것을 발견했습니다.
-
Meteor를 실행하면 두 개의 프로세스가 생성됩니다.
프로세스 1 : / usr / lib / meteor / bin / node /usr/lib/meteor/app/meteor/meteor.js
process2 : / usr / lib / meteor / bin / node /home/paul/codes/bbtest_code/bbtest02/.meteor/local/build/main.js –keepalive
-
process2에서 kill -s USR1을 보내야합니다.
-
노드 검사기를 실행하면 서버 코드를 볼 수 있습니다.
첫 번째 시도에서 / usr / lib / meteor / bin / meteor의 meteor 시작 스크립트의 마지막 줄을 다음과 같이 수정합니다.
exec "$DEV_BUNDLE/bin/node" $NODE_DEBUG "$METEOR" "$@"
실행 NODE_DEBUG=--debug meteor
명령 프롬프트에서. 이것은 process1에 –debug 플래그 만 놓았으므로 node-inspector에서 meteor 파일 만보고 내 코드를 찾을 수 없습니다.
누군가 Windows 및 Mac 컴퓨터에서 이것을 확인할 수 있습니까?
답변
Meteor 0.5.4에서는이 작업이 훨씬 쉬워졌습니다.
먼저 터미널에서 다음 명령을 실행하십시오.
npm install -g node-inspector
node-inspector &
export NODE_OPTIONS='--debug-brk'
meteor
그런 다음 http://localhost:8080
브라우저에서 열어 노드 검사기 콘솔을 봅니다.
최신 정보
Meteor 1.0부터는
meteor debug
이것은 본질적으로 위의 명령에 대한 바로 가기이며, 언급 한대로 브라우저에서 노드 검사기를 실행합니다.
최신 정보
Meteor 1.0.2에서는 콘솔 또는 셸이 추가되었습니다. 변수를 출력하고 서버에서 명령을 실행하는 것이 유용 할 수 있습니다.
meteor shell
답변
Meteor 앱은 Node.js 앱입니다. meteor [run]
명령 으로 Meteor 앱을 실행할 때 디버그 모드에서 시작 하도록 NODE_OPTIONS
환경 변수를 구성node
할 수 있습니다 .
NODE_OPTIONS
환경 변수 값의 예 :
--debug
--debug=47977
-포트 지정--debug-brk
-첫 번째 진술 중단--debug-brk=5858
-포트를 지정하고 첫 번째 명령문에서 중단
이면 동일한 쉘에서 실행되는 export NODE_OPTIONS=--debug
모든 meteor
명령이 환경 변수를 상속합니다. 또는 한 번의 실행에 대해서만 디버깅을 활성화 할 수 있습니다.NODE_OPTIONS="--debug=47977" meteor
.
디버그하려면 node-inspector
다른 셸에서 실행 한 다음 실행 하라는 메시지 http://localhost:8080/debug?port=<the port you specified in NODE_OPTIONS>
에 관계없이 로 이동하십시오 node-inspector
.
답변
디버그 모드에서 node.js를 시작하려면 다음과 같이했습니다.
- /usr/lib/meteor/app/meteor/run.js를 엽니 다.
-
전에
nodeOptions.push(path.join(options.bundlePath, 'main.js'));
더하다
nodeOptions.push('--debug');
다음은 디버거 이클립스를 연결하는 추가 실용적인 단계입니다.
- eclipse를 디버거로 사용하여 node.js를 연결하는 것이 더 쉽기 때문에 여기에서 ‘–debug’대신 ‘–debug-brk’를 사용하십시오.
- ‘디버거’추가 디버깅하려는 코드에서. (개인적으로이 방식을 선호합니다)
- 콘솔에서 유성을 실행
- Eclipse의 node.js에 연결 (V8 도구, localhost : 5858에 연결)
- 실행, 디버거가 히트 할 때까지 기다립니다.
meteor 앱 폴더에서 meteor를 시작하면 콘솔 에 ” debugger listen on port 5858 “이 표시됩니다.
답변
Meteor 1.0.3.1에서 (Sergey.Simonchik 답변 업데이트)
다음으로 서버 시작 meteor run --debug-port=<port-number>
브라우저를 http://localhost:6222/debug?port=<port-number>
<port-number>
지정한 포트는 어디에 있습니까 ?
코드에서 debugger;
에서 중단 점을 설정할 위치를 하십시오.
debugger;
호출 된 위치에 따라 검사기가 열린 상태에서 클라이언트 또는 서버 브라우저 창에서 중단됩니다.
답변
GUI를 통해 중단 점을 설정하는 것을 좋아합니다. 이렇게하면 내 앱에서 디버깅 코드를 제거 할 필요가 없습니다.
이것이 내 지역 유성 앱을 위해 서버 측에서 관리 한 방법입니다.
meteor debug
이런 식으로 앱을 시작하십시오.
제공된 주소로 Chrome을 엽니 다. https://github.com/node-inspector/node-inspector 를 설치해야 할 수도 있습니다. 할 수도 있습니다 (지금 Meteor에 번들로 제공 될 수 있습니까? 확실하지 않음)
이상한 내부 유성 코드 (사용자가 작성한 앱 코드가 아님)가 표시됩니다. 언론 플레이코드를 실행하려면 을 . 이 코드는 단순히 연결을 수신하기 위해 서버를 시작합니다.
play를 누른 후에 만 디버거 폴더 구조에 “app” 이라는 새 디렉토리가 표시 됩니다. 유성 프로젝트 파일이 있습니다. 원하는 줄에 중단 점을 설정하십시오.
앱의 로컬 주소를 엽니 다 . 이것은 서버 측 코드를 실행하고 중단 점에 도달 할 수 있어야합니다!
참고 : 검사기를 다시 열고 앱이 다시 시작될 때마다이 프로세스를 다시 수행해야합니다!
답변
Meteor 1.0.2부터 서버 측 디버깅을위한 가장 좋은 방법은 새로운 내장 셸을 사용하는 것입니다 : 실행중인 server run meteor shell
. 자세한 정보 : https://www.meteor.com/blog/2014/12/19/meteor-102-meteor-shell
답변
왜 그것이 당신에게 효과가 없었는지 모르겠습니다.
콘솔 (Mac)에서 다음 단계를 따라 사용할 수 있습니다.
$ ps
$ kill -s USR1 *meteor_node_process_id*
$ node-inspector &
위의 단계는 https://github.com/dannycoates/node-inspector 에 언급되어 있습니다 . 실행중인 노드 프로세스에 node-inspector를 연결하기위한 것입니다.