Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

365
Visualizações
"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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda