为了减小项目体积,需要按需引入element-ui,但是按照官方步骤走的时候遇到了很多坑
官方步骤
按需引入
借助 babel-plugin-component,我们可以只引入需要的组件,以达到减小项目体积的目的。
首先,安装 babel-plugin-component:
npm install babel-plugin-component -D
然后,将 .babelrc 修改为:
{ "presets": [["es2015", { "modules": false }]], "plugins": [ [ "component", { "libraryName": "element-ui", "styleLibraryName": "theme-chalk" } ] ] }
接下来,如果你只希望引入部分组件,比如 Button 和 Select,那么需要在 main.js 中写入以下内容:
import Vue from 'vue'; import { Button, Select } from 'element-ui'; import App from './App.vue'; Vue.component(Button.name, Button); Vue.component(Select.name, Select); /* 或写为 * Vue.use(Button) * Vue.use(Select) */ new Vue({ el: '#app', render: h => h(App) });
问题出在第二步,我是用vue3.0搭建的脚手架,只有一个babel-config.js的文件夹,但是把放进这个文件夹会报错,所以我在项目根目录新建了一个.babelrc文件,运行时发现报错es2015什么的,于是运行npm install babel-preset-es2015 --save-dev 安装es2015。
安装完成还是报错:plugin/preset files are not allowed to export objects, only functions
解决方法:
npm i @babel/preset-env -D
2.修改.babelrc文件,把es2015改成@babel/preset-env
{ "presets": [["@babel/preset-env", { "modules": false }]], "plugins": [ [ "component", { "libraryName": "element-ui", "styleLibraryName": "theme-chalk" } ] ] }
3.重跑项目
其实.babelrc的配置项,可以写入到babel.config.js文件中,之后不再需要.babelrc文件了,可以在babel.config.js中写,删除.babelrc
module.exports = { "presets": [ '@vue/cli-plugin-babel/preset', ["@babel/preset-env", { "modules": false }] ], "plugins": [ [ "component", { "libraryName": "element-ui", "styleLibraryName": "theme-chalk" } ] ] }
发表评论
侧栏公告
寄语
譬如朝露博客是一个分享前端知识的网站,联系方式11523518。
热评文章
标签列表
热门文章
友情链接