web-dev-qa-db-fra.com

"SyntaxError non capturée: impossible d'utiliser l'instruction d'importation en dehors d'un module" lors de l'importation d'ECMAScript 6

J'utilise ArcGIS JSAPI 4.12 et je souhaite utiliser Spatial Illusions pour dessiner des symboles militaires sur une carte.

Lorsque j'ajoute milsymbol.js au script, la console renvoie une erreur

SyntaxError non capturée: impossible d'utiliser l'instruction d'importation en dehors d'un module`

donc j'ajoute type="module" au script, puis il renvoie

Uncaught ReferenceError: ms n'est pas défini

Voici mon code:

<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>

Donc, si j'ajoute type="module" ou pas, il y a toujours des erreurs. Cependant, dans le document officiel de Spatial Illusions, il n'y a pas de type="module" dans le script. Je suis maintenant vraiment confus. Comment parviennent-ils à le faire fonctionner sans ajouter le type?

Fichier milsymbol.js

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

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

export { ms };
82
Jerry Chen

Il suffit d'ajouter .pack entre le nom et l'extension dans le <script> tag dans src. c'est à dire.:

<script src="name.pack.js">
// code here
</script>
0
Devesh Shirsath