webpack配置别名alias

本文介绍如何在Webpack中配置别名,简化模块路径引用,适用于不同项目结构,包括常规项目、Vue-cli2.0及Vue-cli3.0。通过设置resolve属性,可指定模块基路径、后缀名及别名,提升代码可读性和维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在webpack.config.js中,通过设置resolve属性可以配置查找“commonJS/AMD模块”的基路径,也可以设置搜索的模块后缀名,还可以设置别名alias。设置别名可以让后续引用的地方减少路径的复杂度。

一、常规webpack构建的项目

1、目录结构

- src
   - utils
     - utils.js
   - config
     - config.js
   - main.js
- webpack.config.js

2、webpack.config.js

const path = require('path');
const resolve = dir => path.resolve(__dirname, dir);

module.exports = {
    entry: './src/main.js',
    output: {
        filename: 'bundle.js',
        path: resolve('dist')
    },
    resolve: {
        // 设置别名
        alias: {
            '@': resolve('src')// 这样配置后 @ 可以指向 src 目录
        }
    }
};

3、config.js

import utils math from "@/utils/utils"; // 因为设置了alias,所以引入utils.js时候可以这样简写
....

二、vue-cli 2.0 在\build\webpack.base.conf.js文件下配置

三、vue-cli 3.0 在vue.config.js下配置别名alias

// 由于 Vue CLI 3 不再使用传统的 webpack 配置文件,故 WebStorm 无法识别别名 * 本文件对项目无任何作用,
// 仅作为 WebStorm 识别别名用 * 进入 WebStorm preferences -> Language & Framework -> JavaScript -> Webpack,选择这个文件即可
const resolve = dir => require('path').join(__dirname, dir)
module.exports = {
  resolve: {
    alias: {
      '@': resolve('src'),
      '_c': resolve('src/components')
    }
  }
}

 

转载于:https://www.cnblogs.com/Jimc/p/10282969.html

### Webpack配置路径别名Webpack配置路径别名可以通过 `resolve.alias` 属性来完成。这使得开发者能够通过自定义的短名称替代冗长的相对路径,从而简化模块导入过程[^2]。 #### 配置方式 以下是具体的配置步骤: 1. **引入必要的依赖** 在 Webpack 配置文件中,通常需要引入 Node.js 的 `path` 模块以便于处理路径解析。 ```javascript const path = require('path'); ``` 2. **修改 Webpack 配置对象** 在 `resolve` 字段下新增 `alias` 对象,并为其指定键值对形式的映射关系。例如: ```javascript module.exports = { resolve: { alias: { '@': path.resolve(__dirname, 'src'), '@components': path.resolve(__dirname, 'src/components') } }, ... }; ``` 上述代码表示将 `'@'` 映射到项目的 `src` 文件夹,而 `'@components'` 则指向 `src/components` 文件夹[^2]。 3. **动态路径生成函数(可选)** 如果存在多个类似的路径别名需求,可以封装一个辅助函数用于生成绝对路径。例如: ```javascript function resolve(dir) { return path.join(__dirname, dir); } module.exports = { resolve: { alias: { '@': resolve('src'), '@components': resolve('src/components') } }, ... }; ``` 4. **支持多种扩展名(可选)** 为了进一步优化开发体验,可以在同一字段下声明允许省略的文件后缀列表。例如: ```javascript module.exports = { resolve: { extensions: ['.js', '.vue', '.json'], alias: { '@': path.resolve(__dirname, 'src') } }, ... }; ``` 这样一来,在导入模块时无需显式提供 `.js`, `.vue` 或其他常见类型的后缀[^3]。 #### 使用路径别名 一旦完成了上述配置操作,则可在项目内的 JavaScript 和 Vue 组件文件中利用这些别名进行模块导入。例如: ```javascript // 替代原先较长的相对路径 './src/components/Button.vue' import Button from '@/components/Button.vue'; ``` 需要注意的是,尽管这种机制适用于大多数场景下的静态资源引用,但在某些特定上下文中可能仍需额外调整。比如当尝试直接嵌套图片或其他媒体资产至 HTML 标签属性内时,应采用波浪号前缀的形式以兼容构建工具链的要求[^4]。 ### 特殊情况说明 对于基于 Vue CLI 构建的应用程序而言,默认已集成了一部分基础性的路径别名设定逻辑;然而倘若启用了 TypeScript 支持之后发现原有规则不再生效,则可能是由于 TS 编译器未同步识别该变更所致[^1]。此时建议检查 tsconfig.json 是否也包含了相应的 paths 定义条目并与 Webpack 设置保持一致。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值