Estoy comenzando un nuevo proyecto vue.js, así que utilicé la herramienta vue-cli para construir un nuevo proyecto de paquete web (es decir vue init webpack
).
Mientras recorría los archivos generados, noté las siguientes importaciones en el src/router/index.js
archivo:
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 de stackoverflow duplicada 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!
fuente
Respuestas:
Esto se hace con la
resolve.alias
opción de configuración de Webpack y no es específico de Vue.En la plantilla Vue Webpack , Webpack está configurado para reemplazar
@/
con lasrc
ruta :El alias se usa como:
fuente
vue-cli
v3 +, debe usar~@
para hacer referencia a lasrc
carpeta. Por ejemplo:$font-path: '~@/assets/fonts/';
También tenga en cuenta que también puede crear variables en tsconfig:
Esto se puede utilizar para fines de convenciones de nombres:
fuente
tsc
is not does y por lo tanto necesitarás algo comomodule-alias
otsconfig-paths
.Termino con la siguiente combinación
IDE dejará de advertir la uri, pero esto causa una uri no válida cuando se compila, en "build \ webpack.base.conf.js"
Bingoo!
fuente
resolver ('src') no funciona para mí, pero path.resolve ('src') funciona
fuente
Tal vez intente agregar en el paquete web. mix.webpackConfig hace referencia a laravel mix .
Y luego en vue uso.
fuente