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 在服务器端直接修改请求的接口地址
Dec 19 Vue.js
vue实现按钮切换图片
Jan 20 Vue.js
手动实现vue2.0的双向数据绑定原理详解
Feb 06 Vue.js
如何管理Vue中的缓存页面
Feb 06 Vue.js
vue+flask实现视频合成功能(拖拽上传)
Mar 04 Vue.js
使用Vue.js和MJML创建响应式电子邮件
Mar 23 Vue.js
如何理解Vue前后端数据交互与显示
May 10 Vue.js
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
Nov 27 Vue.js
详解Vue项目的打包方式(生成dist文件)
Jan 18 Vue.js
关于Vue中的options选项
Mar 22 Vue.js
Vue.Draggable实现交换位置
Apr 07 Vue.js
Vue OpenLayer测距功能的实现
Apr 20 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 用checkbox一次性删除多条记录的方法
2010/02/23 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
yii2项目实战之restful api授权验证详解
2017/05/20 PHP
Laravel5.4简单实现app接口Api Token认证方法
2019/08/29 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
jQuery制作简单柱状图实例
2015/01/28 Javascript
JS实现漂亮的窗口拖拽效果(可改变大小、最大化、最小化、关闭)
2015/10/10 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
2016/01/08 Javascript
基于jQuery1.9版本如何判断浏览器版本类型
2016/01/12 Javascript
js 获取站点应用名的简单实例
2016/08/18 Javascript
Angular2学习笔记——详解NgModule模块
2016/12/02 Javascript
js 递归和定时器的实例解析
2017/02/03 Javascript
vue+mousemove实现鼠标拖动功能(拖动过快失效问题解决方法)
2018/08/24 Javascript
vue打开子组件弹窗都刷新功能的实现
2020/09/21 Javascript
零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版
2014/11/06 Python
python文件读写操作与linux shell变量命令交互执行的方法
2015/01/14 Python
Python 冒泡,选择,插入排序使用实例
2015/02/05 Python
Python实现的计算马氏距离算法示例
2018/04/03 Python
对Python中数组的几种使用方法总结
2018/06/28 Python
Python基于多线程操作数据库相关问题分析
2018/07/11 Python
python进行TCP端口扫描的实现
2018/12/21 Python
将matplotlib绘图嵌入pyqt的方法示例
2020/01/08 Python
基于python 等频分箱qcut问题的解决
2020/03/03 Python
python datetime处理时间小结
2020/04/16 Python
详解python日志输出使用配置文件格式
2021/02/10 Python
python中使用asyncio实现异步IO实例分析
2021/02/26 Python
中国海淘族值得信赖的海淘返利网站:55海淘
2017/01/16 全球购物
澳大利亚首屈一指的鞋类品牌:Tony Bianco
2018/03/13 全球购物
员工工作表现评语
2014/04/26 职场文书
安全责任书模板
2014/07/22 职场文书
唐山大地震的观后感
2015/06/05 职场文书
PostgreSQL通过oracle_fdw访问Oracle数据的实现步骤
2021/05/21 PostgreSQL
Mysql systemctl start mysqld报错的问题解决
2021/06/03 MySQL
警用民用对讲机找不同
2022/02/18 无线电
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
2022/04/24 Python
基于docker安装zabbix的详细教程
2022/06/05 Servers