Quiero depurar mi código JavaScript del lado del cliente en Visual Studio Code (VSC). Sin embargo, quiero evitar configurar un servidor en vivo externo y solo quiero cargar los archivos desde mi disco local. Debido a esto, creé el siguiente launch.json :
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "type": "chrome", "request": "launch", "name": "Launch Chrome from the file system", "file": "${workspaceFolder}/src/index.html" } ] } Esto funciona bien, al iniciar el depurador con F5 en VSC, Chrome abre y carga mi index.html desde la carpeta src .
Sin embargo, recibo el siguiente mensaje de error cuando intento importar mi archivo index.js como este <script src="./index.js" type="module" defer></script> :
El acceso al script en 'file:///home/matrix/odin-battleship/src/index.js' desde el origen 'null' ha sido bloqueado por la política de CORS: las solicitudes de origen cruzado solo se admiten para esquemas de protocolo: http, data, cromo, extensión de cromo, cromo no confiable, https.
Sé que esta es una medida de seguridad que evita que los sitios web accedan a mis archivos. He leído sobre eso aquí . Sin embargo, solo quiero depurar mi código sin crear un servidor en vivo. Encontré iniciar Chrome con la bandera --allow-file-access-from-files . Esta pregunta explica cómo iniciar Chrome desde launch.json con banderas.
¿Es este el intento correcto o existen mejores soluciones para depurar sus archivos desde su almacenamiento local en VSC?
Como ha mencionado, es una política de seguridad aplicada por el navegador para evitar que los propietarios del sitio web accedan a los archivos de su computadora.
Debe comenzar a distribuir este archivo js desde cualquier servidor. De esa manera, su scheme será http o https y el archivo se puede enviar de forma segura al navegador.