我使用Webstorm来调试我的应用程序。设置断点很有效,我的断点将被调试器击中。如果我在node_modules内的脚本中设置断点,那么它就不再起作用了。它应该与WebStorm有关,因为Node Inspector可以使用相同的代码正常工作。
它似乎是所有包的通用,但我创建了一个仅使用BlueBird包的示例应用程序。在WebStorm中调试以下程序(确保之前运行npm install bluebird
)。
Promise = require('bluebird');
var promise = new Promise(function(resolve, reject) {
console.log("Waiting 5 seconds...");
setTimeout(function(){
console.log("Resolving...");
resolve();
}, 5000);
});
promise.then(function(){
console.log("Resolved.");
});
这个虚假程序运行正常。当我进入代码的promise.then
部分时,我点击了promise.js的第111行(BlueBird包的函数Promise.prototype.then
)。当我在该行设置断点并重新运行代码时,它就不会停在那里。我自己的代码中的断点确实可以正常工作。