Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

363
Vistas
"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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda