【发布时间】:2018-02-11 11:52:25
【问题描述】:
我正在开始一个新的 vue.js 项目,所以我使用 vue-cli 工具搭建了一个新的 webpack 项目(即vue init webpack)。
当我浏览生成的文件时,我注意到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
}
]
})
我以前没有在路径中看到 at 符号 (@)。我怀疑它允许相对路径(也许?),但我想确定我理解它的真正作用。
我尝试在网上四处搜索,但找不到解释(可能是因为搜索“at 符号”或使用文字字符 @ 作为搜索条件没有帮助)。
@ 在这条路径中做了什么(链接到文档会很棒),这是 es6 的东西吗?一个 webpack 的东西?一个 vue-loader 的东西?
更新
感谢 Felix Kling 向我指出关于同一问题的另一个重复的 stackoverflow 问题/答案。
虽然对另一个 stackoverflow 帖子的评论并不是这个问题的确切答案(在我的情况下它不是 babel 插件),但它确实为我指明了正确的方向来找到它是什么。
在 vue-cli 为您创建的脚手架中,部分基本 webpack 配置为 .vue 文件设置了别名:
这很有意义,因为它为您提供了来自 src 文件的相对路径和它消除了导入路径末尾的 .vue 的要求(您通常需要)。
感谢您的帮助!
【问题讨论】:
-
@FelixKling 这不是完全重复的,因为它没有回答整个问题,这是 es6 的东西吗?一个 webpack 的东西?一个 vue-loader 的东西?
-
是的,我认为这个问题很相似,但不是重复的。不管我弄清楚它的来源并用解释更新了问题,因为我无法将其添加为答案。
-
@estus:答案很清楚它不是 ES6 的一部分,而是 webpack 配置的东西,你不觉得吗?这也正是这里的情况,只是配置的性质有点不同。
-
@FelixKling 这取决于。但是由于您链接的问题没有详细的答案来解释 Webpack 的情况,因此它可能值得一个答案。通常有 'Possible duplicate of ...' 评论足以指定问题之间的联系,其余的由 vox populi 完成。我经常看到这些问题在 SO 上被过度欺骗了。
标签: javascript webpack ecmascript-6 vue.js