浅谈vue路径优化之resolve


Posted in Javascript onOctober 13, 2017

通过vue-cli来创建vue+webpack的项目时,已经有很多都配置好了,但是路径方面为了方便开发,还可以优化。

1. resolve.extensions

在webpack.base.conf.js中,我们可以看到resolve配置,其中的extengsions是一个数组,如下所示:

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

通过这样的配置,我们在组件中过着路由中应用组件时,就可以更为方便的应用,比如:

import Hello from '@components/Hello';

即Hello.vue这个组件我们不需要添加.vue后缀就可以引用到了,如果不用extensions, 我们就必须要用@components/Hello.vue来引入这个文件。

2. resolve.alias

在组件之间相互引用时,可能是下面这样的:

import Hello from '../src.components/Hello';

其中的路径是相对于当前页面的。 但是如果嵌套等更为复杂,那么写起来会比较麻烦。但是如果我们通过这样的配置:

resolve: {
  extensions: ['.js', '.vue', '.json'],
  alias: {
   'vue$': 'vue/dist/vue.esm.js',
   '@pages': path.join(__dirname, "..", "src", "pages"),
   "@components": path.join(__dirname, "..", "src", "components"),
   // 注意: 静态资源通过src,不能这么设置。
   // "@assets": path.join(__dirname, "..", "src", "assets"),
  }

其中vue$表示引入vue,就可以像下面这么写:

import Vue from 'vue'

另外,对于@pages和@components我们就可以直接引用了,而省去了一大堆的复杂应用,另外通过@可以消除歧义。如下所示:

import Hello from '@components/Hello';
import App from '@pages/App'

值得注意的时: 在webpack.config.js中我们不能使用../ 以及./这种形式的路径方式,而是通过 path.join 和 __dirname 这种形式来表示路径,否则会报错。

另外: 在组件中,我们会引用一些静态文件,即static下的文件, 这时我们就不能用 alias 下的配置了,而必须使用一般的配置方式。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
IE中createElement需要注意的一个问题
Jul 13 Javascript
js使用函数绑定技术改变事件处理程序的作用域
Dec 26 Javascript
JS中产生标识符方式的演变
Jun 12 Javascript
js判断主流浏览器类型和版本号的简单实现代码
May 26 Javascript
AngularJS入门教程之更多模板详解
Aug 19 Javascript
Bootstrap模态框水平垂直居中与增加拖拽功能
Nov 09 Javascript
Bootstrap媒体对象学习使用
Mar 07 Javascript
JS实现的JSON数组去重算法示例
Apr 11 Javascript
Vue中控制v-for循环次数的实现方法
Sep 26 Javascript
详解在Node.js中发起HTTP请求的5种方法
Jan 10 Javascript
微信小程序开发常见问题及解决方案
Jul 11 Javascript
Vue3中的Refs和Ref详情
Nov 11 Vue.js
薪资那么高的Web前端必看书单
Oct 13 #Javascript
vue router demo详解
Oct 13 #Javascript
JS实现的简单表单验证功能示例
Oct 13 #Javascript
javascript基于定时器实现进度条功能实例
Oct 13 #Javascript
layui中layer前端组件实现图片显示功能的方法分析
Oct 13 #Javascript
详解如何去除vue项目中的#——History模式
Oct 13 #Javascript
原生JS上传大文件显示进度条 php上传文件代码
Mar 27 #Javascript
You might like
php在字符串中查找另一个字符串
2008/11/19 PHP
php遍历数组的4种方法总结
2014/07/05 PHP
PHP写日志的实现方法
2014/11/05 PHP
PHP实现二叉树的深度优先与广度优先遍历方法
2015/09/28 PHP
PHP解压tar.gz格式文件的方法
2016/02/14 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
PHP实现搜索时记住状态的方法示例
2018/05/11 PHP
firefox firebug中文入门教程 脚本之家新年特别版
2010/01/02 Javascript
javascript instanceof,typeof的区别
2010/03/24 Javascript
JS下拉框内容左右移动效果的具体实现
2013/07/10 Javascript
js中opener与parent的区别详细解析
2014/01/14 Javascript
JavaScript打印网页指定区域的例子
2014/05/03 Javascript
jQuery中:button选择器用法实例
2015/01/04 Javascript
jquery实现网页定位导航
2016/08/23 Javascript
Vuejs第十篇之vuejs父子组件通信
2016/09/06 Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
2019/08/02 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
2020/07/20 Javascript
详解JavaScript 事件流
2020/09/02 Javascript
使用Protocol Buffers的C语言拓展提速Python程序的示例
2015/04/16 Python
python开发之list操作实例分析
2016/02/22 Python
深入理解Django自定义信号(signals)
2018/10/15 Python
django 单表操作实例详解
2019/07/30 Python
Python 使用threading+Queue实现线程池示例
2019/12/21 Python
Pycharm无法打开双击没反应的问题及解决方案
2020/08/17 Python
Python实现自动签到脚本的示例代码
2020/08/19 Python
Python的collections模块真的很好用
2021/03/01 Python
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
《蓝色的树叶》教学反思
2014/02/24 职场文书
预备党员表决心书
2014/03/11 职场文书
公司运动会策划方案
2014/05/25 职场文书
党员演讲稿
2014/09/04 职场文书
运动与健康自我评价
2015/03/09 职场文书
2015年董事长秘书工作总结
2015/07/23 职场文书
Spring Cloud 中@FeignClient注解中的contextId属性详解
2021/09/25 Java/Android
html粘性页脚的具体使用
2022/01/18 HTML / CSS
Hive常用日期格式转换语法
2022/06/25 数据库