vue3.0全局和按需引入element-plus
element
A Vue.js 2.0 UI Toolkit for Web
项目地址:https://gitcode.com/gh_mirrors/eleme/element
·
1.先来看一下未添加element-plus的干净项目打包后文件大小
2.全局安装element-plus
npm install element-plus --save
在main.js里写
import { createApp } from 'vue'
import ElementPlus from 'element-plus';
import 'element-plus/lib/theme-chalk/index.css';
import App from './App.vue';
const app = createApp(App)
app.use(ElementPlus)
app.mount('#app')
打包后文件大小:
3.按需引入element-plus
借助 babel-plugin-import,我们可以只引入需要的组件,以达到减小项目体积的目的。
npm install babel-plugin-import -D
npm install sass sass-loader
在main.js里引入
import 'element-plus/packages/theme-chalk/src/base.scss'
备注:在这里引入之后,会报错:在sass文件中提示Syntax Error : this.getOptions is not a function
原因:npm sass-loader时版本安装的太高,导致报错。这里先执行npm uninstall sass-loader@12.1.0
再执行Npm install sass-loader@10.1.1版本即可解决。
在babel.config.js里引入
module.exports = {
plugins: [
[
"import",
{
libraryName: 'element-plus',
customStyleName: (name) => {
name = name.slice(3)
return `element-plus/packages/theme-chalk/src/${name}.scss`;
},
},
],
],
};
最后,element-plus按需加载完成。使用方法:
import { createApp } from 'vue'
import App from './App.vue'
// 这是全局的安装方法
// import ElementPlus from 'element-plus'
// import 'element-plus/lib/theme-chalk/index.css'
// const app = createApp(App)
// app.use(ElementPlus)
//这里是按需要加载引入代码
import 'element-plus/packages/theme-chalk/src/base.scss'
import { ElButton } from 'element-plus'
const components = [ElButton]
const app = createApp(App)
components.forEach(component => {
app.component(component.name, component)
})
app.mount('#app')

看,按需要引入比全局引入打包后的文件从1.01M,缩小到240M.
A Vue.js 2.0 UI Toolkit for Web
最近提交(Master分支:2 个月前 )
c345bb45
1 年前
a07f3a59
* Update transition.md
* Update table.md
* Update transition.md
* Update table.md
* Update transition.md
* Update table.md
* Update table.md
* Update transition.md
* Update popover.md 1 年前
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)