Za pomocą inspektora węzła nie można ustawić punktu przerwania w następującym kodzie node.js. (Zawartość main.js
)Nie można ustawić punktu przerwania wewnątrz funkcji podczas używania wymaga wewnętrznego zamknięcia.
(function() {
require('underscore');
var doSomething = function(callback) {
callback('doSomething Finished');
}
doSomething(function(x) {
console.log(x);
});
}).call(this);
można łatwo ustawić punkt przerwania na linii 2, wiersz 4 lub 8 linii, jednak bez względu na to jak bardzo się staram debuggera nie pozwoli mi ustawić punkt przerwania na linii 5 lub linia 9. aby być jasne, używam następujące polecenia, aby uruchomić węzeł inspektor
node --debug-brk main.js
node-inspector
próbowałem też debugować w internetowej burzy, jednak problem nadal występuje. Jeśli usuniemy linię require('underscore');
, problem natychmiast zniknie i będę mógł ponownie ustawić punkt przerwania w treści funkcji. Problem również ustępuje, jeśli usunę najbardziej zewnętrzną funkcję zamykania. Wygląda na to, że interakcja między require
a zamknięciem poziomu pliku powoduje wkręcenie funkcjonalności debugowania węzła. Czy ktoś osobiście doświadczył tego problemu i/lub zna wszelkie obejścia, aby móc włamać się do ciała funkcjonalnego?
EDIT: wersja mojego węzła js
Tony:~ $ node --version
v0.10.12
Tony:~ $
Masz tutaj tag requirejs. Czy naprawdę używasz requierjs w węźle? Prawdopodobnie nie. –
Myślałem, że requirejs zapewnia wywołanie 'require', czy tak nie jest? – Tony
Nie, wymaganie jest dostarczane przez środowisko wykonawcze nodejs. Jest to część specyfikacji specyfikacji CommonJS. –