Tengo una aplicación básica escrita en javascript puro (index.html, script.js) que puse en un proyecto CapacitorJs para permitirme crear aplicaciones ios/android. que funcionan perfectamente bien incluso en mi teléfono.
Pero ahora estoy tratando de usar un complemento de la comunidad de capacitores ( @capacitor-community/contacts ) pero necesito importarlo en mi script.js así
import { Contact, Contacts, NewContact } from '@capacitor-community/contacts';
Como no estoy usando mecanografiado, obviamente arroja un error.
¿Cómo puedo hacer para que funcione?
Intenté importarlo a través de un <script type="module"> en mi index.html y asignarlo a la variable de window global js para acceder a él en mi script.js pero no funciona.
También intenté convertir mi scripts.js a un mecanografiado y compilarlo con la siguiente configuración:
{ "target":"es5", "module":"es2015", "moduleResolution:"node" } Y para que funcione, tuve que cambiar la cadena de importación a: import { Contact, Contacts, NewContact } from '../../nodes_modules/@capacitor-community/contacts';
Pero luego aparece un error en la consola que dice TypeError: 'text/html' is not a valid Javascript MIME type
"target":"commonjs",Pero obtuve un error con "definir" que no se reconoce en el navegador.
"bundledWebRuntime": true , que básicamente compila archivos de núcleo de capacitor en un .js que importa en su index.html. Pero no incluye paquetes comunitarios por lo que no es una solución.No tiene nada que ver con mecanografiado. Su proyecto debe estar declarado para usar módulos ES, para poder usar funciones como import . No tengo claro su configuración exacta, pero si tiene un package.json , intente agregarle esto:
{ ... type: "module", }Si solo tiene una configuración básica, es decir, una página html con un archivo js en una etiqueta de secuencia de comandos, debería poder hacer que funcione declarando su archivo js como un módulo como este:
<script type="module" src="main.js"></script>