सिस्टमजेएस जैसे मॉड्यूल लोडर का उपयोग करते समय सफारी के वेब इंस्पेक्टर में डिबगिंग


121

मैं एक Ionicएप्लिकेशन लोड कर रहा हूं es6 modules, TypeScriptऔर SystemJSएक मॉड्यूल लोडर के रूप में। यह मेरा सेटअप है:

tsconfig.json:

{
  "compilerOptions": {
    ...
    "target": "es5",
    "module": "system",
    ...
  }
}

index.html:

<script src="lib/system.js"></script>
<script src="systemjs.config.js"></script>
<script>System.import('js/app.js')</script>

उदाहरण स्क्रिप्ट (टाइपस्क्रिप्ट):

import {IConfig} from "./app-config";

export class ConfigLoader {
    ...
}

Chrome में सब कुछ बढ़िया चलता है। हालाँकि, जब सफारी के वेब इंस्पेक्टर का उपयोग करके डीबगिंग करता हूं, तो मैं स्क्रिप्ट में कोई भी ब्रेकपॉइंट नहीं डाल सकता क्योंकि वेब इंस्पेक्टर केवल एचटीएमएल (स्क्रिप्ट टैग के माध्यम से) से भरी हुई स्क्रिप्ट दिखाता है, और एक्सएचआर द्वारा लोड की गई स्क्रिप्ट नहीं (मेरे मामले में, सिस्टमजेएस द्वारा) । इसका मतलब है कि मैं अपनी खुद की स्क्रिप्ट को डीबग नहीं कर सकता, जो कि अस्वीकार्य है।

मैंने पहले की तरह SystemJS का उपयोग करके इसके चारों ओर काम करने की कोशिश की, लेकिन स्क्रिप्ट टैग को html में रखकर, जैसे:

<script src="lib/system.js"></script>
<script src="systemjs.config.js"></script>
<script src="js/app-config.js"></script>
 ... other app scripts
<script>System.import('js/app.js')</script>

हालाँकि, यह काम नहीं करता है, क्योंकि SystemJS इससे खुश नहीं है:

अमान्य System.register कॉल। बेनामी System.register कॉल केवल SystemJS.import द्वारा लोड किए गए मॉड्यूल द्वारा किया जा सकता है और स्क्रिप्ट टैग के माध्यम से नहीं।

मैं SystemJS का उपयोग कैसे करूं और उसी समय सफारी में डिबग करने की क्षमता है? मैं 'एक स्क्रिप्ट में एक डिबगर बयान डाल' की तुलना में एक छोटे से अधिक परिष्कृत समाधान की तलाश में हूं ...


4
यह एक अजीब सलाह की तरह लग सकता है, और चूंकि यह प्रश्न 11 जनवरी से खुला है, लेकिन मैं आपको वेबपैक में गोता लगाने की सलाह दूंगा। मैं SystemJS में पढ़ रहा हूं, लेकिन मुझे यह महसूस नहीं हो रहा है कि यह आपकी जरूरतों को पूरा करेगा।
DevNebulae

ऐसा लगता है जैसे आप HTML में भरी हुई स्क्रिप्ट को प्राप्त नहीं कर सकते हैं जैसे आप कर रहे थे आप भाग्य से बाहर हैं। Chrome एकमात्र ऐसा ब्राउज़र प्रतीत होता है जो आपके द्वारा देखा गया समर्थन करता है।
मफिन मैन


3
debuggerJS कीवर्ड का उपयोग करें
Kamil Kiełczewski

1
@ KamilKiełczewski प्रश्न में स्पष्ट रूप से कहा गया है 'मैं एक ऐसे हल की तलाश कर रहा हूं जो' प्रत्येक लिपि में एक डिबगर स्टेटमेंट 'की तुलना में थोड़ा अधिक परिष्कृत हो ...'
फ़िक्कत्रा

जवाबों:


1

खैर, शायद आप वेब और नोड के लिए एक मजबूत डीबगर के साथ वेबस्टॉर्म जैसे कुछ आईडीई का उपयोग कर सकते हैं ।

उदाहरण:

यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें

आप यहां वेबस्टॉर्म डिबगर के बारे में अधिक देख सकते हैं ।

WebStorm के लिए कुछ विकल्प:

  1. परमाणु (मुक्त)
  2. इंटेलीज आईडिया (समुदाय: नि: शुल्क)
  3. विज़ुअल स्टूडियो कोड (निःशुल्क)
  4. ...

PS: मैं वेबस्टॉर्म: D के साथ Ionic और रिएक्ट एप्लिकेशन विकसित करता हूं


1
मैं वेबस्टॉर्म में जाने की कोशिश कर रहा हूं, लेकिन मेरे पास वीएस कोड में एक्सटेंशन सिस्टम द्वारा प्रदान की जाने वाली कई उपयोगी विशेषताएं हैं जो वेबस्टॉर्म के पास नहीं हैं, यह कूदना मुश्किल है।
स्टीफन एम इरविंग


-4

js फ़ाइल कीवर्ड में लिखें debuggerऔर inspect elementएक्सप्लोरर में खोलें

जब ताज़ा पृष्ठ और डिबगिंग मोड ...

इसका आनंद लें ;-)


3
प्रश्न में स्पष्ट रूप से कहा गया है, "मैं एक ऐसे हल की तलाश कर रहा हूं जो 'प्रत्येक लिपि में एक डिबगर स्टेटमेंट' की तुलना में थोड़ा अधिक परिष्कृत हो ..."
fikkatra
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.