के साथ जेएस डिबगिंग सेट अप करना क्या मुझे फ़ैंटॉमजेएस और/या कैस्परजेएस पर काम कर रहे एक इंटरैक्टिव जेएस डीबगर मिल सकता है?इंटेलिजे/वेबस्टॉर्म और फैंटॉमजेएस/कैस्पर
उत्तर
PhantomJS एक remote-debugger-port
विकल्प आपको क्रोम देव उपकरणों में अपने कैस्पर स्क्रिप्ट डिबग करने के लिए उपयोग कर सकते हैं। फिर,
casperjs test script.js --remote-debugger-port=9000
क्रोम में http://localhost:9000 खुल जाएगा और about:blank
लिंक है कि में प्रस्तुत करता है पर क्लिक करें: इसका इस्तेमाल करने के लिए, बस अपने कैस्पर स्क्रिप्ट इस तर्क के साथ निष्पादित। आपको अपने आप को परिचित क्रोम देव उपकरण क्षेत्र में ढूंढना चाहिए।
इस के बाद से एक स्क्रिप्ट और नहीं एक वेब पेज है, ताकि डिबगिंग शुरू करने के लिए, आप दो चीजों से पहले अपनी स्क्रिप्ट निष्पादित करेंगे में से एक करना है:
- क्रोम देव उपकरण पृष्ठ में, खोलने कंसोल और
__run()
से निष्पादित करें वास्तव में अपनी स्क्रिप्ट शुरू करें। - अपने कोड में
debugger;
लाइन डालें, और एक अतिरिक्त--remote-debugger-autorun=yes
तर्क के साथ अपनी कैस्पर स्क्रिप्ट चलाएं। रिमोट डीबग पेज ओपन के साथ ऐसा करने से स्क्रिप्ट तब तक चल जाएगी जब तक कि यह आपकेdebugger;
लाइन को हिट नहीं करेगी।
एक शानदार tutorial है जो यह सब बहुत अच्छी तरह से समझाता है।
मैंने इसे पूरी तरह से हल नहीं किया, लेकिन मैंने दर्द को निश्चित रूप से कम कर दिया।
फ़ैंटॉमजेएस webkit's remote debugger सक्षम करने के लिए command line argument प्रदान करता है। AFAIK, फैंटॉमजेएस ने एक सर्वर लॉन्च किया और स्क्रिप्ट को परिचित इन-ब्राउजर डीबगर के साथ वेबपृष्ठ के <head>
में डंप कर दिया। ब्रेकपॉइंट्स इत्यादि के साथ यह वास्तव में बहुत अच्छा है। हालांकि, यादृच्छिक कमांड लाइन पैरामीटर के लिए टर्मिनल में मैन्युअल रूप से खुदाई करने के लिए स्विच करना और आपकी स्क्रिप्ट का पथ गंभीर रूप से परेशान है।
तो, मैंने एक बैच स्क्रिप्ट लॉन्च करने के लिए इंटेलिजे की "बाहरी टूल्स" सुविधा का उपयोग किया जो किसी भी पिछले डिबगिंग सत्र को मारता है, फ़ैंटॉमजेएस लॉन्च करता है, और उसके बाद पेज को क्रोम में खोलता है।
#!/bin/bash
lsof -i [email protected]:9000 #list anything bound to port 9000
if [ $? -eq 0 ] #if something was listed
then
killall 'phantomjs'
fi
/usr/local/Cellar/phantomjs/2.0.0/bin/phantomjs --remote-debugger-port=9000 $1 &
# --remote-debugger-autorun=yes <- use if you have added 'debugger;' break points
# replace $1 with full path if you don't pass it as a variable.
sleep 2; #give phantomJS time to get started
open -a /Applications/Google\ Chrome.app http://localhost:9000 & #linux has a different 'open' command
# alt URL if you want to skip the page listing
# http://localhost:9000/webkit/inspector/inspector.html?page=1
#see also
#github.com/ariya/phantomjs/wiki/Troubleshooting
अगली कुछ पंक्तियां इंटेलिजे के लिए सेटिंग्स हैं, हालांकि उपर्युक्त कोड किसी प्लेटफॉर्म/आईडीई पर भी काम करता है।
कार्यक्रम: $ProjectFileDir$/path/to/bash/script.sh
पैरामीटर: $FilePath$
काम कर dir: $ProjectFileDir$
- 1. "#", "$", "%", "&", और "_" "\ #", "\ $", "\%", "\ &", और "\ _"
- 2. प्रदर्शन और सॉर्टिंग, और mysql और php
- 3. "और" और "या"
- 4. "बिटवाइस और" और सी ++
- 5. और बनाम * और | बनाम +
- 6. getters और setters और
- 7. सीएसएस "और" और "या"
- 8. {} और {}
- 9. और
- 10. $ (...) और `...`
- 11. $ * और $ @
- 12. और
- 13. $ # और $ {# @}
- 14. $ और()
- 15. जावास्क्रिप्ट शॉर्टैंड अगर-और और
- 16. क्षमताओं और लिनक्स और जावा
- 17. MySQL और PHP और jquery
- 18. जावा और सी # और .NET
- 19. UILabel और numberOfLines और sizeToFit:
- 20. RabbitMQ और चैनल और कनेक्शन
- 21. लिखें और और फिर विधियां
- 22. XHTML और और (एम्पसेंड) एन्कोडिंग
- 23. पायथन अगर स्थिति और "और"
- 24. multidplyr और group_by() और फ़िल्टर()
- 25. बोतल और स्केलिंग और संगामिति
- 26. बेंचमार्क और सी # और जावा
- 27. रेल और मार्कडाउन और संपादक
- 28. कई तर्कों और "और व्यवहार"
- 29. अंतर और इरादा और सेटकंटेंटव्यू
- 30. Mercurial और maven (और svn)
क्रोम में यह --remote-debugging-port है, नहीं --remote-debugger-port। यह वेबकिट आलेख में भी ध्वज है। आप दोबारा जांचना चाहेंगे कि ध्वज सही है। –
नहीं, यह [निश्चित रूप से] है (https://github.com/ariya/phantomjs/wiki/Troubleshooting#remote-debugging) '--remote-debugger-port = 9000' – Indolering
जबकि इस उत्तर ने मुझे बहुत सारे इंटरनेट पॉइंट प्राप्त किए हैं , मैं इसे कभी * वास्तविक * समाधान देखना चाहता हूं और मुझे इसे पोस्ट करने वाले किसी भी व्यक्ति को जवाब देने में खुशी होगी! – Indolering