我尝试使用node-inspector调试meteor .
/ server目录下有两个'.js'文件:
main.js
Meteor.startup(function(){
var a = 1;
var b =2;
console.log(a+b);
});
test.js
Meteor.methods({
hello:function(){
var c = 3 ;
var d = 4;
}
});
首先,我设置环境 NODE_OPTIONS='--debug'
并运行 meteor
. 在另一个CMD运行 node-inspector
我在chrome处打开 localhost:8080/debug?port=5858
并找到文件"app/server/main.js"并在3行设置调试标志 . 像这样:
(function(Npm, Assets){(function(){Meteor.startup(function(){
var a = 1;
var b =2; //debug at here
console.log(a+b);
});
})();
})
但没有任何事情发生,在cmd, console.log(a+b);
的结果已经打印出来了 . 另一方面,如果我在"app/server/test.js"中设置调试标志并在 localhost:3000
的控制台上运行 Meteor.call("hello")
,那么断点可以正常工作 .
在上面,我无法调试 Meteor.startup
.
接下来,我尝试使用 NODE_OPTIONS='--debug-brk'
我重新运行 meteor
并刷新 localhost:8080/debug?port=5858
它会打破
(function (exports, require, module, __filename, __dirname) { process.argv.splice(2, 0, 'program.json');
然后我再次按 F10
,调试标志似乎没有发生在 app/server/main.js
. 同时,如果在test.js上调试并在客户端chrome处调用 Meteor.call
,则断点也可以正常工作 .
如何在函数 Meteor.startup(function(){...})
上调试
我忘记的步骤是什么?
1 回答
有一个issue related to node-inspector . 取决于您的版本,也许您可以尝试downgrade to 1.10 .