Vue对ElementUI的组件按需引入时:报错Cannot find module:babel-preset-es2015
解决ElementUI在Vue项目中按需引入时关于babel-preset-es2015的报错:Error:Cannot find module:babel-preset-es2015Error:Plugin/Preset files are not allowed to export objects, only functions. In...
Error:Cannot find module:babel-preset-es2015
Error:Plugin/Preset files are not allowed to export objects, only functions. In...
在使用ElementUI组件时,有完整引入和按需引入;完整引入时请求的资源较大,所以可以进行按需引入,根据自己的需要来引入自己想要的组件并进行相关的配置。
按照官方的按需引入介绍,需要安装 babel-plugin-component
npm install babel-plugin-component -D
1、配置babel.config.js文件
对项目中的 .babelrc 文件内容进行修改,但是,在这里出现了问题,由于我所使用的Vue脚手架版本较新,所以脚手架在开始搭建环境时并没有创建这个文件,代替它的是 babel.config.js文件。——所以这里应该是修改babel.config.js文件才对。
其中蓝色部分是脚手架创建环境时写入的配置,不要删掉,将官方描述中presets后的配置项追加到自己babel.config.js文件中就好了,plugins与presets平级,粘贴进来即可。
2、配置main.js文件
官方介绍中是这样的:
我们使用ElementUI组件库,前提肯定已经有Vue项目了,所以main.js也已经存下了,我们只需要做两个操作:
1、从element-ui组件库中引入组件
// 从element-ui中引入 Button和Row组件
import { Row,Button} from 'element-ui';
/*注意下:
由于我只用到了row组件和button组件,所以这里只对这两个进行了引入,
如果还有用到别的,应该追加进去来提取所需组件。
*/
2、注册Vue全局组件
// 通过Vue.component来注册全局组件,可供所有组件使用
// Vue.component(Button.name, Button);
Vue.component('xibing-button', Button);
Vue.component(Select.name, Select);
/*
可以对第一个参数进行修改,这里的第一个参数默认是 Xxx组件名.name (首字母大写)
如果不修改,那么在结构中的组件就应该是 <el-xxx></el-xxx> (组件名小写)
如果修改了,例如上面Button的组件名是xibing-button,那么结构中就应该写<xibing-button></xibing-button>
*/
注意:如果是完整引入,需要引入css文件;按需引入则不需要引入css文件,项目内部会自动根据main.js中的需求引入和babel.config.js中的配置来调用css完整样式中的部分样式。
3、将组件添加到结构中
上面是官网中我要用到的那部分,复制粘贴到自己的Vue结构中
红色框内注意:由于main.js中对Button的组件名修改了,所以这边应该对应上
4、运行项目
VS Code终端内 npm run serve 运行时报错:
我一看,Cannot find model 这不就是说咱项目里没有后面的这个模块吗,想着安装就没问题
所以开始安装这个模块依赖
但是,安装完后,重新运行又报新错误:
Error: Plugin/Preset files are not allowed to export objects, only functions. In ...
才发现,原来是因为这里(官网中)的配置比较旧,而我的vue-cli比较新,新旧冲突,查资料解决办法是:修改配置!
["es2015", { "modules": false }] 修改为:["@babel/preset-env", { "modules": false }]
修改后重新运行正常!
更多推荐
所有评论(0)