Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

364
Views
"Error de sintaxis no detectado: no se puede usar la declaración de importación fuera de un módulo" al importar ECMAScript 6

Estoy usando ArcGIS JSAPI 4.12 y deseo usar Spatial Illusions para dibujar símbolos militares en un mapa.

Cuando agrego milsymbol.js al script, la consola devuelve un error

Error de sintaxis no capturado: no se puede usar la declaración de importación fuera de un módulo

entonces agrego type="module" al script, y luego regresa

Error de referencia no detectado: ms no está definido

Aquí está mi código:

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

Entonces, ya sea que agregue type="module" o no, siempre hay errores. Sin embargo, en el documento oficial de Spatial Illusions, no hay ningún type="module" en el script. Ahora estoy realmente confundido. ¿Cómo se las arreglan para que funcione sin agregar el tipo?

Archivo milsymbol.js

 import { ms } from "./ms.js"; import Symbol from "./ms/symbol.js"; ms.Symbol = Symbol; export { ms };
over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Recibí este error porque olvidé el type="module" dentro de la etiqueta del script:

 <script type="module" src="milsymbol-2.0.0/src/milsymbol.js"></script>
over 4 years ago · Santiago Trujillo Report

0

Actualización para Node.js/NPM

Agregue "type": "module" a su archivo package.json .

 { // ... "type": "module", // ... }

Nota : al usar módulos, si obtiene ReferenceError: require is not defined , deberá usar la sintaxis de import en lugar de require . No puede mezclar y combinar de forma nativa entre ellos, por lo que deberá elegir uno o usar un paquete si necesita usar ambos .

over 4 years ago · Santiago Trujillo Report

0

Parece que la causa de los errores son:

  1. Actualmente está cargando el archivo fuente en el directorio src en lugar del archivo construido en el directorio dist (puede ver cuál es el archivo distribuido previsto aquí ). Esto significa que está utilizando el código fuente nativo en un estado inalterado/desagregado, lo que genera el siguiente error: Uncaught SyntaxError: Cannot use import statement outside a module . Esto debería solucionarse usando la versión empaquetada, ya que el paquete usa el paquete acumulativo para crear un paquete.

  2. La razón por la que está obteniendo el Uncaught ReferenceError: ms is not defined es porque los módulos tienen un alcance, y dado que está cargando la biblioteca usando módulos nativos, ms no está en el alcance global y, por lo tanto, no es accesible en la siguiente etiqueta de secuencia de comandos .

Parece que debería poder cargar la versión dist de este archivo para tener ms definido en la window . Consulte este ejemplo del autor de la biblioteca para ver un ejemplo de cómo se puede hacer esto.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!