title | type | order |
---|---|---|
Depurando en VS Code |
cookbook |
8 |
Toda aplicaci贸n alcanza un punto donde es necesario entender los errores, desde los m谩s chicos a los m谩s grandes. En esta receta, se exploran algunos flujos de trabajo para usuarios de VS Code a quienes les gustar铆a depurar su aplicaci贸n en el navegador.
Esta receta muestra como depurar aplicaciones Vue CLI en VS Code mientras ejecutan en el navegador.
Nota: Esta receta cubre Chrome y Firefox. Si ud sabe como configurar la depuraci贸n en VS Code con otros navegadores, por favor considere compartir sus percepciones (vea al final de la p谩gina).
Aseg煤rese de tener VS Code y el navegador de su preferencia instalado, as铆 como tambi茅n la 煤ltima versi贸n de la extensi贸n de depuraci贸n que corresponda instalada y habilitada:
Instale y cree un proyecto con vue-cli, siguiendo las instrucciones en Gu铆a Vue CLI. Mu茅vase dentro del directorio de la aplicaci贸n recientemente creada y abra VS Code.
Antes de que pueda depurar sus componentes Vue desde VS Code, necesitar谩 actualizar la configuraci贸n de Webpack generada para poder construir los sourcemaps. Haremos esto para que nuestro depurador tenga una forma de correlacionar el c贸digo del archivo comprimido con la posici贸n en el archivo original. Esto asegura que pueda depurar una aplicaci贸n incluso luego de que sus assets hayan sido optimizados por Webpack.
Si usa Vue CLI 2, configure o actualice la propiedad devtool
dentro de
index.js
:
devtool: 'source-map',
Si usa Vue CLI 3, configure o actualice la propiedad devtool
dentro de
vue.config.js
:
module.exports = {
configureWebpack: {
devtool: 'source-map'
}
}
Haga clic en el icono Depurar en la Barra de Actividad para cargar la vista de
Depuraci贸n. Luego haga clic en el icono Engranaje para configurar el archivo
launch.json
, seleccione Chrome/Firefox: Launch como el entorno. Reemplace
el contenido del archivo launch.json
generado con la configuraci贸n correspondiente:
{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "vuejs: chrome",
"url": "http://localhost:8080",
"webRoot": "${workspaceFolder}/src",
"breakOnLoad": true,
"sourceMapPathOverrides": {
"webpack:///src/*": "${webRoot}/*"
}
},
{
"type": "firefox",
"request": "launch",
"name": "vuejs: firefox",
"url": "http://localhost:8080",
"webRoot": "${workspaceFolder}/src",
"pathMappings": [{ "url": "webpack:///src/", "path": "${webRoot}/" }]
}
]
}
- Ponga un breakpoint en src/components/HolaMundo.vue en la
l铆nea 90
donde la funci贸ndata
devuelve una cadena de texto.
- Abra su terminal favorita en la carpeta ra铆z y corra su aplicaci贸n usando Vue CLI:
npm start
-
Vaya a la vista de Depuraci贸n, seleccione la configuraci贸n 'vuejs: chrome/firefox', luego presione F5 o haga clic en el bot贸n verde de reproducir.
-
Su breakpoint deber铆a ser alcanzado una vez que la nueva instancia de su navegador se abra:
http://localhost:8080
.
Hay otros modelos de depuraci贸n, variando en complejidad. El m谩s simple y popular es usar el excelente Vue.js devtools para Chrome y para Firefox. Algunos de los beneficios de trabajar con las devtools es que le permite editar las propiedades y ver los cambios reflejados en tiempo real. El otro gran beneficio es la habilidad de depurar viajando en el tiempo para Vuex.
Por favor tenga presente que si la p谩gina usa una compilaci贸n minificada de producci贸n de Vue.js (como ser el link est谩ndar del CDN), la inspecci贸n de devtools estar谩 deshabilitada por defecto lo cual no mostrar谩 el panel de Vue. Si se cambia a una versi贸n no minificada, quiz谩s sea necesario que recargue la p谩gina forzadamente para poder verlo.
El ejemplo anterior tiene un gran flujo de trabajo. Sin embargo, hay una opci贸n alternativa donde puede usar la sentencia nativa debugger directamente en su c贸digo. Si elige trabajar de esta forma, es importante que recuerde remover las sentencias una vez haya terminado.
<script>
export default {
data() {
return {
message: ''
}
},
mounted() {
const hello = 'Hola Mundo!'
debugger
this.message = hello
}
};
</script>
Esta receta se basa en una contribuci贸n de Kenneth Auchenberg, disponible aqu铆.