2017-04-08 22 views
0

我已經繼承了運行gulp + nodejs的項目。我試圖在Windows中使用IntelliJ作爲我的IDE。在IntelliJ中使用gulp代替nodejs忽略斷點

如果我將運行時配置設置爲使用「node.js」作爲它的類型,那麼我在打斷點和調試時沒有問題。但是,如果我使用「gulp.js」作爲運行類型,斷點將被忽略(並且我基本上不會調試)。我也嘗試使用Node.js配置,並將JS文件設置爲node_modules/gulp/bin/gulp.js而不是server/run.js。這似乎有完全相同的問題。

有關如何解決此問題的任何想法?

+0

你可能已經做到了,但你遵循的IntelliJ提供的政黨成員想法? https://blog.jetbrains.com/webstorm/2014/11/gulp-in-webstorm-9/ – jy95

+0

我沒有,但我只是全力以赴,以確保我沒有錯過任何東西,而且我沒有任何東西已經完成了。所以回到原點: - \ – Dakusan

回答

1

Gulp運行配置不應該用於Node應用程序調試 - 它被設計爲運行/調試Gulp任務。要調試您的Node.js應用程序,您需要創建一個Node.js Run配置並將Gulp build生成的.js文件指定爲要調試的文件。

如果您仍然傾向於使用Gulp來啓動服務器,請確保它以-debug-brk開頭,然後使用Node.js Remote運行配置來附加調試器。

像:

var gulp = require('gulp'); 
var exec = require('child_process').exec; 

gulp.task('server', function (cb) { 
    exec('node --debug-brk=5858 app.js', function (err, stdout, stderr) { 
... 

運行server任務,然後創建Node.js Remote運行配置,並創下調試

enter image description here

+0

感謝您的回答,我認爲這正是我所期待的。對不起,在這上面花了這麼長時間,我一直淹沒到今天。所以你建議我運行nodejs。這意味着我必須重新啓動服務器,只要我改變服務器端代碼,對吧?我在印象之下吞下了所以我不必在代碼更改時重新啓動服務器?還是我不正確? – Dakusan

+1

Gulp本身並沒有做任何事情來重啓你的服務器/熱交換的改變,所以我不確定你的印象是基於什麼......當使用Node.js時,你可以使用Live Edit來獲得熱切換而無需服務器重啓(如果可能的話)或者讓服務器自動重新啓動。請參閱https://blog.jetbrains.com/webstorm/2014/08/live-edit-updates-in-webstorm-9/。 確保在首選項|中設置'更新'構建,執行,部署|調試器|現場編輯爲'自動進入(ms)'並啓用'重啓如果熱插拔失敗' – lena

+0

真棒,感謝您的幫助! – Dakusan