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组件生命周期运行原理解析
Nov 25 Vue.js
vue-cli4.0多环境配置变量与模式详解
Dec 30 Vue.js
Vue 3自定义指令开发的相关总结
Jan 29 Vue.js
如何在 Vue 中使用 JSX
Feb 14 Vue.js
VUE实现吸底按钮
Mar 04 Vue.js
深入理解Vue的数据响应式
May 15 Vue.js
Vue+Flask实现图片传输功能
Apr 01 Vue.js
vue使用wavesurfer.js解决音频可视化播放问题
Apr 04 Vue.js
VUE之图片Base64编码使用ElementUI组件上传
Apr 09 Vue.js
vue+elementUI实现表格列的显示与隐藏
Apr 13 Vue.js
vue/cli 配置动态代理无需重启服务的方法
May 20 Vue.js
Vue3实现简易音乐播放器组件
Aug 14 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
提高PHP编程效率 引入缓存机制提升性能
2010/02/15 PHP
PHP扩展编写点滴 技巧收集
2010/03/09 PHP
二招解决php乱码问题
2012/03/25 PHP
PHP设计模式之建造者模式定义与用法简单示例
2018/08/13 PHP
一些相见恨晚的 JavaScript 技巧
2010/04/25 Javascript
jquery对单选框,多选框,文本框等常见操作小结
2014/01/08 Javascript
js判断数据类型如判断是否为数组是否为字符串等等
2014/01/15 Javascript
JS控制一个DIV层在指定时间内消失的方法
2014/02/17 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
2014/04/02 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
js验证框架之RealyEasy验证详解
2016/06/08 Javascript
vue双向绑定简要分析
2017/03/23 Javascript
详解vue2 $watch要注意的问题
2017/09/08 Javascript
vue-cli3自动消除console.log()的调试信息方式
2020/10/21 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
Python正则表达式的使用范例详解
2014/08/08 Python
Python字符串特性及常用字符串方法的简单笔记
2016/01/04 Python
利用Python破解斗地主残局详解
2017/06/30 Python
在Python中居然可以定义两个同名通参数的函数
2019/01/31 Python
Python class的继承方法代码实例
2020/02/14 Python
keras打印loss对权重的导数方式
2020/06/10 Python
python操作链表的示例代码
2020/09/27 Python
处理textarea中的换行和空格
2019/12/12 HTML / CSS
Spartoo英国:欧洲最大的网上鞋店
2016/09/13 全球购物
Wedgwood美国官网:英国骨瓷,精美礼品及家居装饰
2018/02/17 全球购物
澳大利亚在线家具店:Luxo Living
2019/03/24 全球购物
大四学生毕业自荐信
2013/11/07 职场文书
银行实习鉴定
2013/12/13 职场文书
优秀老员工获奖感言
2014/02/15 职场文书
大学生暑期实践感言
2014/02/26 职场文书
元宵节晚会主持人串词
2014/03/25 职场文书
公司晚会策划方案
2014/05/17 职场文书
低碳环保演讲稿
2014/08/28 职场文书
鲁冰花观后感
2015/06/10 职场文书
python中if和elif的区别介绍
2021/11/07 Python
Python 中 Shutil 模块详情
2021/11/11 Python