今天研究了下鹏哥搭建的项目代码,一个人捣鼓了半天模块别名配置,边写边测试,才慢慢明白,所有写下来当个笔记:

  在vue项目中,经常根据需要引入不同的功能模块,默认情况下我们通过代码 import moduleTest from '@/views/test/hello.vue'这样的形式去进行引入操作,这里的@符号代表什么意思呢,在使用vue脚手架vue-cli搭建起来的项目中,在根目录下的build/webpack.base.config.js中,有下面这样的一段代码:

  

  红色框圈起来的部分的@符号即我们引入模块时的@符号,这里的意思是使用@符号指代根目录下的src文件夹路径,这样通过@/就可以轻松引入src文件夹下的文件了,但是会有个问题,如果我们需要引入的组件在src下一个比较深的文件夹中,引入的时候就得写很多层的路径,只是一次引入还好,多次引入的话,路径写起来脑壳都疼,所以进行模块别名配置就能友好的解决这个问题了。

  模块别名配置,就是先一次性的配置好模块的别名以及对应的路径,在引入模块的地方通过引入模块别名就行了,在某些模块被频繁调用的情况下非常适合,下面说一下整个配置过程:

  (一)首先在根目录下新建一个文件夹aliasConfig,然后在aliasConfig下新建一个叫module.config.js的文件,项目结构如下:

  (二)打开module.config.js文件,编辑内容,如下

/**
* author lh
* date 2019-4-1
*
*/ 'use static'
var path = require('path')
var srcDir = path.resolve(process.cwd(), 'src') module.exports = {
vue$: 'vue/dist/vue.esm', HelloWorld: srcDir + '/components/HelloWorld.vue',
testVue: srcDir + '/views/test.vue'
}

  这里前面第二三行代码的意思是:通过设置nodeJS的路径处理模块path的组合路径方法(详细方法内容请看Nodejs基础:路径处理模块path总结),将srcDir指向项目根目录下的src的路径地址,module.exports对象中的键值对就是我们配置的别名跟别名对应的路径,设置好后,在需要的地方引入别名即可,代码如下:

import '模块名称' from '模块别名'

  (三)模块别名文件配置好后,需要在build/webpack.base.config.js中修改最上面图的红圈部分的内容,修改内容如下:

resolve: {
extensions: ['.js', '.vue', '.json'],
alias: vueModuleConfig
},

  (四)修改保存好后,需要重新npm run dev启动项目代码,然后引入模块别名,发现已经可以正常引入了,感觉还是有点好玩的,继续学习去了...

vue aliasConfig(模块别名配置)的更多相关文章

  1. Vue Cli3 中别名的配置问题

    Vue Cli3 中别名的配置问题 vue-cli3中是没有config.build等目录的,这是因为vue-cli3中将这些配置隐藏起来了,如果想要修改,可以在vue.config.js文件中进行修 ...

  2. vite搭建vue项目-集成别名@、router、vuex、scss就是这样简单

    为什么要使用vite 当我们开始构建越来越大型的应用时, 需要处理的 JavaScript 代码量也呈指数级增长. 包含数千个模块的大型项目相当普遍. 这个时候我们会遇见性能瓶颈 使用 JavaScr ...

  3. 二、vue之 使用vscode配置

    vue之 使用vscode配置 visual  studio code 简称vscode,下图为图标 ... 开启vscode ... 1.导入文件夹,选择菜单栏 文件-打开文件夹->选择相应已 ...

  4. vue工程权限怎么配置?

    vue工程权限怎么配置? router.beforeEach((to, from, next) => { }):方法的to参数能拿到router设置的对象信息,如: { path: " ...

  5. nginx别名配置,状态配置,include优化

    一.nginx帮助参数 下面是关于/application/nginx/sbin/nginx 的参数帮助 [root@A conf]# /application/nginx/sbin/nginx -h ...

  6. vue.config.js基础配置

    const path = require('path') const UglifyPlugin = require('uglifyjs-webpack-plugin') module.exports ...

  7. vue中使用proxy配置不同端口和ip接口

    问题描述: 使用vue-cli创建的项目,开发地址是localhost:8080,由于后台开发不同的模块,导致每个模块请求的ip和端口号不一致 例如:http://192.168.10.22:8081 ...

  8. vue 学习 cli3常用配置

    ---恢复内容开始--- cli3以后,构建的项目更加的简洁,配置文件也没有向cli2那样暴漏出来,但这并不代表cli3是不可配置的,我们只需要在根目录下添加一个vue.config.js作为项目的配 ...

  9. IIS请求筛选模块被配置为拒绝超过请求内容长度的请求

    HTTP错误404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求,原因是Web服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值(IIS 7 默认文件上传大 ...

随机推荐

  1. 委托的异步编程和同步编程的使用( Invoke 和BeginInvoke)

    一,区别: 使用Invoke完成一个委托方法的封送,就类似于使用SendMessage方法来给界面线程发送消息,是一个同步方法.也就是说在Invoke封送的方法被执行完毕前,Invoke方法不会返回, ...

  2. java中多种方式解析xml

    第一种:DOM.DOM的全称是Document Object Model,也即文档对象模型.在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正 ...

  3. python字符串方法学习笔记

    # 一.字符串大小写转换# 字符串首字符大写print("hello world".capitalize())# 将字符串变为标题print("hello WORLD&q ...

  4. css行高的用法总结

    css没有提供一个直接设置行间距的方式,所以只能通过设置行高来间接的设置行间距,行高越大行间距就越大,用 line-height 来设置行高. .p1 { /* 设置行高 */ line-height ...

  5. 前端学习(二十九)nodejs(笔记)

    后台语言    java     php     .Net     python    Node.js------------------------------------------------- ...

  6. C++中表示字符串长度

    string的size(), length() 和 char[]的strlen()都是不包括‘\0'的,他们都是“外貌协会”的,只停留在表面.而sizeof则是从内存角度来反映,它是包括’\0‘的.注 ...

  7. 通过cmd命令启动appium server,appium server安装过程

    电脑上已安装了appium desktop版,想在移动端自动化的过程中,通过脚本启动appium server,环境准备: 1.确保电脑安装了node.js,目前用的是node12 2.安装JDK,且 ...

  8. Spring AOP中的JDK和CGLIB动态代理

    Spring在将Advice织入目标对象的Joinpoint是在运行时动态进行的.它采用的方式可能有两种,即JDK动态代理与CGLIB代理.Spring会根据具体的情况在两者之间切换. 实际情况如下: ...

  9. Spark开发环境搭建和作业提交

    Spark高可用集群搭建 在所有节点上下载或上传spark文件,解压缩安装,建立软连接 配置所有节点spark安装目录下的spark-evn.sh文件 配置slaves 配置spark-default ...

  10. 【leetcode】935. Knight Dialer

    题目如下: A chess knight can move as indicated in the chess diagram below:  .            This time, we p ...