vue-cli 3中element-ui按需引入element-ui报错
问题:
项目用的脚手架是 vue-cli 3,需要按需引入element-ui,按照element-ui官网的步骤进行按需引入,结果报错:Error: Cannot find module ‘babel-preset-es2015’。
按需引入
借助 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"
}
]
]
}运行项目,发现报错,报错信息如下:

出现错误原因
项目是基于vue-cli 3.x的版本,并没有官网的.babelrc文件,只有babel.config.js文件,而且项目不需要引入完整的element-ui,只需要引入部分,按官网的步骤安装babel-plugin-component后在babel.config.js写入内容,报错:connot find module babel-preset-es2015。
解决方案:
.babelrc文件和babel.config.js文件都是配置文件,可以视为相同,之后需要使用npm安装
1.安装@babel/preset-env
npm i @babel/preset-env -D
2.修改.babelrc文件,把es2015改成@babel/preset-env
不使用es2015改成@babel/preset-env,因为两者是相同的,其作用都是编译es6语法,因此在babel.config.js中写成
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset',
["@babel/preset-env", { "modules": false }]
],
"plugins": [
[
"component",
{
"libraryName": "element-ui",
"styleLibraryName": "theme-chalk"
}
]
]
}然后重新执行 np run serve,就可以了。
本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!