vue使用element-ui按需引入


Posted in Vue.js onMay 20, 2022

众所周知,使用element-ui,为了达到减小项目体积的目的 ,我们在实际项目中更多的是采用按需引入的方法, 下面就来讲讲那些我踩过的坑。

步骤:

第一步:安装 element-ui 时把 element 也安装一下,

执行命令 npm i element-ui -Snpm i element -S

第二步:安装 babel-plugin-component ,

执行命令 npm install babel-plugin-component -D

第三步 :踩坑一: element-ui文档中是修改 .babelrc 文件中的配置,实际上我们的文档中根本没有这个文件夹,所以我们需要修改的是 bable.config.js 文件中的配置。

踩坑二: element-ui文档中提示让将配置改为这样,于是就把 bable.config.js 文件配置成这样

vue使用element-ui按需引入

但是我们启动会报错 ‘Error: Cannot find module 'babel-preset-es2015'’

这是因为缺少依赖 babel-preset-es2015 , 现在我们执行命令npm i babel-preset-es2015 --save 下载依赖,

然后启动之后还是会报错 ,于是我各种查资料文档得知:报错关于es2015,,这个是为了兼容ie(9-11),需要引入es2015,

所以需要把 babel-polyfill 和 babel-preset-es2015 两个npm 引入到package.json里(两个都要下载才可以),然后启动项目就可以了(但是这个方法容易因为版本不匹配报错,所以更推荐使用下面的方法)。

踩坑三: 可以将 es2015 换成这个 @babel/preset-env ,但是同时也需要下载依赖,执行命令npm i @babel/preset-env -D

踩坑四: 但是此时也会报错:‘# 源文本中存在无法识别的标记。。。’

那是因为 npm 无法识别 @ 符号,解决方法:只需要使用引号将要安装的依赖包名包起来就解决了。

所以最后执行的命令为: npm i '@babel/preset-env' -D

然后 bable.config.js文件的配置是这样:

module.exports = {
  presets: [
    '@vue/cli-plugin-babel/preset',
    ["@babel/preset-env", { "modules": false }]
  ],
  "plugins": [
    [
      "component",
      {
        "libraryName": "element-ui",
        "styleLibraryName": "theme-chalk"
      }
    ]
  ]
}

配置的坑就完了,接下来是引入:这个引入文档上写得还是不错,

但是有一点需要注意, 踩坑五:

组件中我使用了布局容器:

<el-container>
        <el-header>Header</el-header>
        <el-main>Main</el-main>
    </el-container>

我认为这个都是Container 布局容器,在 main.js 中这样引入即可:

//element-ui按需引入
    import {
      Container
    } from 'element-ui'
    Vue.use(Container);

结果总是报错:‘Unknown custom element: - did you register the component correctly? For recursive components, make sure to provide the "name" option. ’ 无论我怎么检查都是错的,绞尽脑汁啊,终于我发现了,为什么没有报 el-container 的错,所以我成功了

每一个不同的标签都是一个不同组件,使用都需要分别引入,正确的是这样:

//element-ui按需引入
    import {
      Container,Header,Main
    } from 'element-ui'
    Vue.use(Container);
    Vue.use(Header);
    Vue.use(Main);

你有踩过哪些坑? 欢迎探讨交流

总结

到此这篇关于vue使用element-ui按需引入时踩坑的文章就介绍到这了!


Tags in this post...

Vue.js 相关文章推荐
vue+vant实现购物车全选和反选功能
Nov 17 Vue.js
Vue如何循环提取对象数组中的值
Nov 18 Vue.js
Vue实现随机验证码功能
Dec 29 Vue.js
Vue 数据响应式相关总结
Jan 28 Vue.js
Vue包大小优化的实现(从1.72M到94K)
Feb 18 Vue.js
Vue SPA 首屏优化方案
Feb 26 Vue.js
vue-cli4.5.x快速搭建项目
May 30 Vue.js
vue响应式原理与双向数据的深入解析
Jun 04 Vue.js
vue+element ui实现锚点定位
Jun 29 Vue.js
一定要知道的 25 个 Vue 技巧
Nov 02 Vue.js
vue实现Toast组件轻提示
Apr 10 Vue.js
vue route新窗口跳转页面并且携带与接收参数
Apr 10 Vue.js
vue/cli 配置动态代理无需重启服务的方法
May 20 #Vue.js
Vue ECharts实现机舱座位选择展示功能
May 15 #Vue.js
Vue组件化(ref,props, mixin,.插件)详解
vue postcss-px2rem 自适应布局
May 15 #Vue.js
VUE解决跨域问题Access to XMLHttpRequest at
vue使用watch监听属性变化
Apr 30 #Vue.js
vue-cli3.x配置全局的scss的时候报错问题及解决
You might like
Netflix将与CLAMP、乙一以及冲方丁等6名知名制作人合伙展开原创动画计划!
2020/03/06 日漫
德生S2000南麂列岛台湾FM收听记录
2021/03/02 无线电
PHP入门速成教程
2007/03/19 PHP
yii操作session实例简介
2014/07/31 PHP
php封装的验证码工具类完整实例
2016/10/19 PHP
JavaScript入门学习书籍推荐
2008/06/12 Javascript
解决js中window.open弹出的是上次的缓存页面问题
2013/12/29 Javascript
Jquery图片延迟加载插件jquery.lazyload.js的使用方法
2014/05/21 Javascript
Jquery动态添加及删除页面节点元素示例代码
2014/06/16 Javascript
nodejs爬虫抓取数据之编码问题
2015/07/03 NodeJs
js仿支付宝填写支付密码效果实现多方框输入密码
2016/03/09 Javascript
JavaScript的Backbone.js框架入门学习指引
2016/05/07 Javascript
原生JS:Date对象全面解析
2016/09/06 Javascript
JS 动态判断PC和手机浏览器实现代码
2016/09/21 Javascript
利用BootStrap的Carousel.js实现轮播图动画效果
2016/12/21 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
2017/04/11 jQuery
JavaScript之Date_动力节点Java学院整理
2017/06/28 Javascript
vue中vee validate表单校验的几种基本使用
2018/06/25 Javascript
js for终止循环 跳出多层循环
2018/10/04 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
2018/12/18 Javascript
如何使用electron-builder及electron-updater给项目配置自动更新
2018/12/24 Javascript
javascript关于“时间”的一次探索
2019/07/24 Javascript
原生js实现购物车功能
2020/09/23 Javascript
Python实现发送email的几种常用方法
2014/08/18 Python
简单介绍Python中用于求最小值的min()方法
2015/05/15 Python
利用Python3分析sitemap.xml并抓取导出全站链接详解
2017/07/04 Python
详解python单元测试框架unittest
2018/07/02 Python
浅谈python 读excel数值为浮点型的问题
2018/12/25 Python
Python虚拟环境的原理及使用详解
2019/07/02 Python
django使用channels实现通信的示例
2020/10/19 Python
Brasty波兰:香水、化妆品、手表网上商店
2019/04/15 全球购物
优秀员工评优方案
2014/06/13 职场文书
学校欢迎标语
2014/06/18 职场文书
小学优秀教师事迹材料
2014/12/16 职场文书
营销计划书
2015/01/17 职场文书
vue-element-admin项目导入和导出的实现
2021/05/21 Vue.js