vue 引用src中的文件_VUE中引用路径的配置

本文介绍如何在Vue项目中简化对assets和static目录下资源文件的引用路径,通过配置webpack.base.conf.js来提高开发效率。

在vue项目开发中经常引用JS、CSS、IMG文件。当项目较大时文件层级很多,导致路径很长,我们可以通过在bulid > webpack.base.conf.js 设置简便的引用路径

一、引用assets目录下的文件

举例:

1、在src > components > content > Content.vue 中引用

src > assets > img > arrow.png

图片引用代码,引用路径就会比较复杂

解决办法:

1、在webpack.base.conf.js 中给src/assets设置引用路径 assets

resolve: {

extensions: ['.js', '.vue', '.json'],

alias: {

'vue$': 'vue/dist/vue.esm.js',

'@': resolve('src'),

// add assets路径

'assets': resolve('src/assets'),

},

2、使用设置好的引用路径, "~assets"

3、注意事项,设置好引用路径,必须要重启项目才能生效。不然会报错

4、配置JS、CSS文件同样操作

二、引用static目录下的文件

解决办法:

1、在webpack.base.conf.js 中给static设置引用路径 static

resolve: {

extensions: ['.js', '.vue', '.json'],

alias: {

'vue$': 'vue/dist/vue.esm.js',

'@': resolve('src'),

// add static路径

'static': path.resolve(__dirname, '../static'),

},

2、使用设置好的引用路径, "~static"

3、注意事项,设置好引用路径,必须要重启项目才能生效。不然会报错

4、配置JS、CSS文件同样操作

<think> 我们正在回答关于在vue.config.js中配置@引用文件路径的问题。根据引用[1]和引用[2],我们可以通过配置vue.config.js中的别名(alias)来解决路径引用问题。特别是,@通常被配置为指向src目录。 引用[2]提供了具体的配置代码示例: 在vue.config.js中,我们使用chainWebpack来配置别名,其中@被设置为'./src'的绝对路径。 另外,引用[3]提到在js中引入带别名的文件路径不需要在别名前加~,但在css或style中引入时需要加~。 因此,我们可以给出以下配置步骤: 1. 在项目根目录下创建或修改vue.config.js文件。 2. 引入path模块。 3. 使用config.resolve.alias设置别名。 注意:在Vue CLI 3及以上版本中,默认已经配置了@指向src目录,所以如果没有特殊需求,可能不需要再配置@。但是,如果需要配置其他别名或者修改@的指向,可以按照以下方式。 具体配置代码如下: ```javascript const path = require('path'); // 引入path模块 function resolve(dir) { return path.join(__dirname, dir); // 将传入的路径转换为绝对路径 } module.exports = { chainWebpack: (config) => { config.resolve.alias .set('@', resolve('./src')) // 设置@指向src目录 // 可以继续设置其他别名,例如: .set('components', resolve('./src/components')) .set('assets', resolve('./src/assets')) .set('views', resolve('./src/views')) // 注意:store和router通常不需要配置别名,因为Vuex和Vue Router有固定的引入方式 } }; ``` 这样配置后,在JavaScript代码中引入文件可以这样写: import HelloWorld from '@/components/HelloWorld.vue' 在CSS或style标签中引入文件则需要这样写(注意需要加~): @import '~@/assets/style.css'; 另外,引用[4]提到了viewport的meta配置,但这与路径别名无关,所以这里不涉及。 注意:修改vue.config.js后需要重启项目才能生效。 最后,我们生成三个相关问题: </think> ### Vue.config.js 配置 `@` 文件路径引用指南 在 Vue 项目中配置 `@` 路径别名可以简化文件引用路径,提高开发效率。以下是详细配置方法和注意事项: #### 基础配置步骤 1. **创建配置文件** 在项目根目录创建 `vue.config.js` 文件(如不存在) 2. **添加路径解析代码** ```javascript // vue.config.js const path = require('path'); function resolve(dir) { return path.join(__dirname, dir); // 生成绝对路径 } module.exports = { chainWebpack: (config) => { // 设置别名映射 config.resolve.alias .set('@', resolve('src')) // 核心配置:@ → src目录 .set('@assets', resolve('src/assets')) .set('@components', resolve('src/components')) .set('@views', resolve('src/views')); } }; ``` #### 使用示例 ```javascript // JavaScript文件中使用(无需特殊符号) import Header from '@/components/Header.vue' import utils from '@/utils/helpers.js' // CSS文件中使用(需加~前缀) <style scoped> .bg { background-image: url(~@assets/images/bg.jpg); } </style> ``` #### 关键注意事项 1. **路径引用规则** ([^3]) - JS 文件:直接使用 `@/path/to/file` - CSS/SCSS:需添加波浪号 `~@/path/to/file` - HTML 模板:无需特殊处理 `<img src="@/assets/logo.png">` 2. **路径解析原理** ([^2]) ```javascript path.join(__dirname, 'src') // 等价于绝对路径:/User/project/src ``` 3. **修改后需重启** 配置变更后需重启开发服务器:`npm run serve` 4. **默认配置说明** Vue CLI 默认配置 `@ → src`,仅当需要自定义其他别名时才需额外配置 #### 最佳实践建议 1. **统一路径规范** ```javascript // 推荐使用小写别名保持一致性 .set('@api', resolve('src/api')) ``` 2. **项目结构变更防护** 当调整目录结构时,只需修改 `vue.config.js` 中的映射关系,无需全局替换路径引用 ([^1]) 3. **TypeScript 支持** 在 `tsconfig.json` 中添加: ```json { "compilerOptions": { "paths": { "@/*": ["src/*"] } } } ``` --- ### 路径引用对比示例 | **文件类型** | **传统引用方式** | **别名引用方式** | |--------------|------------------------------|--------------------------| | JS 组件 | `../../components/Button.vue`| `@/components/Button.vue`| | SCSS 文件 | `../../../styles/vars.scss` | `~@/styles/vars.scss` | | 工具类 | `../../utils/request.js` | `@utils/request.js` | > 提示:使用路径别名可使代码更简洁,提升项目可维护性 ([^1]) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值