vuejs vue usar script rutas index how cli javascript webpack ecmascript-6 vue.js

javascript - usar - Importación de ES6 usando la ruta de inicio de sesión at(''@'') en un proyecto vue.js usando Webpack



vuejs 3 (3)

Esto se realiza con la opción de configuración Webpack resolve.alias y no es específico de Vue.

En la plantilla Vue Webpack , Webpack está configurado para reemplazar @/ con la ruta src :

resolve: { extensions: [''.js'', ''.vue'', ''.json''], alias: { ... ''@'': resolve(''src''), } }, ...

Estoy comenzando un nuevo proyecto vue.js, así que utilicé la herramienta vue-cli para crear un nuevo proyecto de paquete web (es decir, vue init webpack ).

Mientras recorría los archivos generados, noté las siguientes importaciones en el archivo src/router/index.js :

import Vue from ''vue'' import Router from ''vue-router'' import Hello from ''@/components/Hello'' // <- this one is what my qusestion is about Vue.use(Router) export default new Router({ routes: [ { path: ''/'', name: ''Hello'', component: Hello } ] })

No he visto antes el signo ( @ ) en un camino. Sospecho que permite caminos relativos (¿tal vez?) Pero quería estar seguro de entender lo que realmente hace.

Traté de buscar en línea pero no pude encontrar una explicación (problema porque buscar "en el signo" o usar el carácter literal @ no ayuda como criterio de búsqueda).

¿Qué hace el @ en esta ruta (el enlace a la documentación sería fantástico) y es esto una cosa es6? ¿Una cosa de paquete web? ¿Una cosa de vue-loader?

ACTUALIZAR

Gracias Felix Kling por señalarme otra pregunta / respuesta duplicada de stackoverflow sobre esta misma pregunta.

Si bien el comentario en la otra publicación de stackoverflow no es la respuesta exacta a esta pregunta (no fue un complemento de babel en mi caso), me señaló en la dirección correcta para encontrar lo que era.

En el andamiaje que vue-cli produce para usted, parte de la configuración base del paquete web configura un alias para los archivos .vue:

Esto tiene sentido tanto en el hecho de que le proporciona una ruta relativa desde el archivo src y elimina el requisito de .vue al final de la ruta de importación (que normalmente necesita).

¡Gracias por la ayuda!


También tenga en cuenta que también puede crear variables en tsconfig:

"paths": { "@components": ["src/components"], "@scss": ["src/styles/scss"], "@img": ["src/assests/images"], "@": ["src"], }

Esto se puede utilizar para fines de convenciones de nomenclatura:

import { componentHeader } from ''@components/header'';


Termino con la siguiente combinación

import HelloWorld from ''@/components/HelloWorld'' => import HelloWorld from ''src/components/HelloWorld''

IDE dejará de advertir la uri, pero esto causa una uri no válida cuando se compila, en "build / webpack.base.conf.js"

resolve: { extensions: [''.js'', ''.vue'', ''.json''], alias: { ''src'': resolve(''src''), } },

Bingoo!