javascript - "बिना सिंटैक्स ई-कार्ड: एक मॉड्यूल के बाहर आयात विवरण का उपयोग नहीं किया जा सकता है" जब ईएस 6 आयात कर रहा है



ecmascript-6 arcgis (1)

मैं आर्कगिस जेएसएपीआई 4.12 का उपयोग कर रहा हूं और मानचित्र पर सैन्य प्रतीकों को आकर्षित करने के लिए स्थानिक भ्रम का उपयोग करना चाहता हूं।

जब मैं milsymbol.js को स्क्रिप्ट में milsymbol.js हूं, तो कंसोल त्रुटि वापस करता है। milsymbol.js Uncaught SyntaxError: Cannot use import statement outside a module , इसलिए मैं स्क्रिप्ट में type="module" जोड़ता हूं, यह बिना Uncaught ReferenceError: ms is not defined वापस करता है Uncaught ReferenceError: ms is not defined

यहाँ मेरा कोड है:

<link rel="stylesheet" href="https://js.arcgis.com/4.12/esri/css/main.css">
<script src="https://js.arcgis.com/4.12/"></script>
<script type="module" src="milsymbol-2.0.0/src/milsymbol.js"></script>

<script>
        require([
          "esri/Map",
          "esri/views/MapView",
          "esri/layers/MapImageLayer",
          "esri/layers/FeatureLayer"
        ], function (Map, MapView, MapImageLayer, FeatureLayer) {

            var symbol = new ms.Symbol("SFG-UCI----D", { size: 30 }).asCanvas(3);
            var map = new Map({
                basemap: "topo-vector"
            });

            var view = new MapView({
                container: "viewDiv",
                map: map,
                center: [121, 23],
                zoom: 7
            });
        });
    </script>

इसलिए, चाहे मैं type="module" जोड़ूं या नहीं, हमेशा त्रुटियां होती हैं। हालांकि, स्थानिक भ्रम के आधिकारिक दस्तावेज में, स्क्रिप्ट में कोई type="module" है। मैं अब वास्तव में उलझन में हूं, वे प्रकार को जोड़े बिना इसे कैसे प्राप्त करने का प्रबंधन करते हैं?

milsymbol.js

import { ms } from "./ms.js";

import Symbol from "./ms/symbol.js";
ms.Symbol = Symbol;

export { ms };

ऐसा लगता है कि त्रुटियों का कारण हैं:

1) आप वर्तमान में स्रोत फ़ाइल को src निर्देशिका में निर्मित फ़ाइल के बजाय src निर्देशिका में लोड कर रहे हैं (आप देख सकते हैं कि इच्छित वितरित फ़ाइल here )। इसका मतलब यह है कि आप मूल स्रोत कोड का उपयोग अनलल्ड / अनबंड स्थिति में कर रहे हैं, जिससे निम्न त्रुटि हो सकती है: Uncaught SyntaxError: Cannot use import statement outside a module । यह बंडल संस्करण का उपयोग करके तय किया जाना चाहिए क्योंकि बंडल बनाने के लिए पैकेज रोलअप का उपयोग कर रहा है।

2) कारण जो आपको Uncaught ReferenceError: ms is not defined मिल रहा है Uncaught ReferenceError: ms is not defined त्रुटि है क्योंकि मॉड्यूल को बंद कर दिया गया है, और चूंकि आप देशी मॉड्यूल का उपयोग करके पुस्तकालय लोड कर रहे हैं, ms वैश्विक दायरे में नहीं है और इसलिए निम्नलिखित में सुलभ नहीं है स्क्रिप्ट टैग।

ऐसा लगता है कि आपको window पर ms परिभाषित करने के लिए इस फ़ाइल के dist संस्करण को लोड करने में सक्षम होना चाहिए। लाइब्रेरी लेखक से इस उदाहरण को देखें कि यह कैसे किया जा सकता है।





arcgis-js-api