javascript - español - La importación ES2015 no funciona(incluso en el nivel superior) en Firefox
javascript descargar (3)
Estos son mis archivos de muestra:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<script src="t1.js"></script>
</head>
<body></body>
</html>
t1.js:
import Test from ''t2.js'';
t2.js:
export const Test = console.log("Hello world");
Cuando cargo la página en Firefox 46, devuelve "SyntaxError: las declaraciones de importación solo pueden aparecer en el nivel superior de un módulo", pero no estoy seguro de cuánto más puede llegar aquí la declaración de importación. ¿Es este error una pista falsa y simplemente no se admite la importación / exportación?
En realidad, el error que obtuvo fue porque necesita declarar explícitamente que está cargando un módulo; solo entonces se permite el uso de módulos:
<script src="t1.js" type="module"></script>
Lo encontré en este documento sobre el uso de la importación ES6 en el navegador . Lectura recomendada.
Totalmente compatible con esas versiones de navegador (y posteriores; lista completa en caniuse.com ):
- Firefox 60
- Chrome (escritorio) 65
- Chrome (android) 66
- Safari 1.1
En navegadores más antiguos, es posible que deba habilitar algunos indicadores en los navegadores:
-
Chrome Canary 60: detrás de la bandera de la plataforma web experimental en
chrome:flags
. -
Firefox 54 -
dom.moduleScripts.enabled
configuración enabout:config
. -
Edge 15: detrás de la configuración de las características experimentales de JavaScript en
about:flags
.
debe especificar su tipo en el script y la exportación debe ser predeterminada ... por ejemplo, en su caso debería ser,
<script src=''t1.js'' type=''module''>
para t2.js use default después de exportar así, exportar default ''aquí va su expresión'' (no puede usar variable aquí) . puedes usar funciones como esta,
export default function print(){ return console.log(''hello world'');}
y para importar, su sintaxis de importación debería ser así, importar imprimir desde ''./t2.js'' (use la extensión de archivo y ./ para el mismo directorio) ... ¡Espero que esto le sea útil!
Esto ya no es exacto. caniuse.com
Respuesta original a continuación
De developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… :
Esta característica no está implementada en ningún navegador de forma nativa en este momento. Se implementa en muchos transpiladores, como el compilador Traceur, Babel o Rollup.
Los navegadores no admiten
import
.
Aquí está la tabla de soporte del navegador:
Si desea importar módulos ES6, sugeriría usar un transpilador (por ejemplo, babel ).