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+iview实现分页及查询功能
Nov 17 Vue.js
vue3.0实现点击切换验证码(组件)及校验
Nov 18 Vue.js
vue添加自定义右键菜单的完整实例
Dec 08 Vue.js
vue使用transition组件动画效果的实例代码
Jan 28 Vue.js
聊聊vue 中的v-on参数问题
Jan 29 Vue.js
如何封装Vue Element的table表格组件
Feb 06 Vue.js
vue3使用vue-router的完整步骤记录
Jun 20 Vue.js
vue中使用mockjs配置和使用方式
Apr 06 Vue.js
如何优化vue打包文件过大
Apr 13 Vue.js
vue3种table表格选项个数的控制方法
Apr 14 Vue.js
vue 给数组添加新对象并赋值
Apr 20 Vue.js
Vue 打包后相对路径的引用问题
Jun 05 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
PHP4.04简明安装
2006/10/09 PHP
PHP如何通过带尾指针的链表实现'队列'
2020/10/22 PHP
js传参数受特殊字符影响错误的解决方法
2013/10/21 Javascript
JS调试必备的5个debug技巧
2014/03/07 Javascript
在JS数组特定索引处指定位置插入元素
2014/07/27 Javascript
js delete 用法(删除对象属性及变量)
2014/08/24 Javascript
深入理解JavaScript系列(29):设计模式之装饰者模式详解
2015/03/03 Javascript
基于AngularJS前端云组件最佳实践
2016/10/20 Javascript
jQuery回调方法使用示例
2017/06/26 jQuery
探索webpack模块及webpack3新特性
2017/09/18 Javascript
jQuery实现所有验证通过方可提交的表单验证
2017/11/21 jQuery
Angular网络请求的封装方法
2018/05/22 Javascript
详解vue填坑之解决部分浏览器不支持pushState方法
2018/07/12 Javascript
vue单页应用在页面刷新时保留状态数据的方法
2018/09/21 Javascript
如何在 JavaScript 中更好地利用数组
2018/09/27 Javascript
React中this丢失的四种解决方法
2019/03/12 Javascript
JS中call()和apply()的功能及用法实例分析
2019/06/28 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
2019/10/23 Javascript
Angular 多级路由实现登录页面跳转(小白教程)
2019/11/19 Javascript
Vue 解决路由过渡动画抖动问题(实例详解)
2020/01/05 Javascript
基于node+vue实现简单的WebSocket聊天功能
2020/02/01 Javascript
python实现根据图标提取分类应用程序实例
2014/09/28 Python
Python使用xlrd读取Excel格式文件的方法
2015/03/10 Python
详谈在flask中使用jsonify和json.dumps的区别
2018/03/26 Python
基于Python2、Python3中reload()的不同用法介绍
2019/08/12 Python
Pytorch实现各种2d卷积示例
2019/12/30 Python
Django跨域资源共享问题(推荐)
2020/03/09 Python
利用css3如何设置没有上下边的列表间隔线
2017/07/03 HTML / CSS
HTML+CSS3模拟心的跳动实例代码
2017/09/05 HTML / CSS
英国鞋类及配饰零售商:Kurt Geiger
2017/02/04 全球购物
梅西百货澳大利亚:Macy’s Australia
2017/07/26 全球购物
个人委托书
2014/07/31 职场文书
2014年团委工作总结
2014/11/13 职场文书
python使用glob检索文件的操作
2021/05/20 Python
ConditionalOnProperty配置swagger不生效问题及解决
2022/06/14 Java/Android
MySQL生成千万测试数据以及遇到的问题
2022/08/05 MySQL