vue别名不起作用

我在写一个购物网站,使用vue,三个项目,用户页面(多页面应用)、后台管理页面(单页面应用)和后端(使用egg.js)。
后端用TypeScript,前台和后台准备转ts(vue-property-decorator),TS虽然写的时候约束多一些,但是维护容易的多,程序的可靠性会大大提升,而且写的时候的智能提示和代码导航会节约大量时间。后台花了周末的两天时间转好了。
转的过程中解决了不少问题,其中一个是别名在vue文件中不起作用,在ts文件中可以工作。

import LoginPage from "@/components/LoginPage.vue"; // 不可以 can't find the module
import LoginPage from "./components/LoginPage.vue"; // 可以

我必须要使用@,以避免宿主文件移动带来的麻烦,也不用考虑宿主文件和引用文件的相对关系。
总是怀疑配置有问题,折腾了几个小时,无果。
后来**单独打开这个后台管理工程**,居然就没这个错误了。
一万句草泥马掠过。
原来为了避免打开多个vscode,打开包含了上述三个项目的上级目录,造成了这个麻烦。
编译在两种情况下都没有问题,只有智能提示有问题,代码导航不生效。所以应该是vscode的vetur插件有问题,而不是vue-loader有问题,希望,vetur插件作者看到后,尽快修复,节约程序员的宝贵时间。

### Vue2 中路径别名的设置 在 Vue2 项目中,为了简化模块导入路径并提高项目的可维护性,可以配置 Webpack 别名。这使得开发者能够通过自定义别名来代替冗长的相对路径。 #### 配置 `webpack` 的别名 对于基于 Vue CLI 构建工具创建的 Vue2 项目,在根目录下的 `vue.config.js` 文件里修改配置: ```javascript const path = require('path'); module.exports = { configureWebpack: { resolve: { extensions: ['.js', '.vue', .json'], alias: { '@': path.resolve(__dirname, './src'), 'assets': path.resolve(__dirname, './src/assets'), 'components': path.resolve(__dirname, './src/components'), 'views': path.resolve(__dirname, './src/views') } } } }; ``` 上述代码片段展示了如何为常见的文件夹设定别名[^3]。 #### 修改 tsconfig.json (如果适用) 当项目使用 TypeScript 时,还需要编辑 `tsconfig.json` 来同步这些别名映射关系: ```json { "compilerOptions": { ... "baseUrl": ".", "paths": { "@/*": [ "src/*" ], "assets/*": [ "src/assets/*" ], "components/*": [ "src/components/*" ], "views/*": [ "src/views/*" ] }, ... } } ``` 此部分确保了 TypeScript 编译器理解新的路径别名[^2]。 #### 使用别名 完成以上配置之后,在任何 `.vue`, `.js` 或者其他支持 ES Module 导入语法的地方都可以直接利用已定义好的别名来进行模块引入操作,例如: ```javascript // 原始写法 import Layout from '../../views/layout/index.vue'; // 新写法 import Layout from '@/views/layout/index.vue'; ``` 这样仅减少了错误的可能性也提高了代码的整洁度[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值