当前位置:   article > 正文

vue按需引入第三方插件_elementui组件按需引入踩过的坑

vue按需引入
import 

代码虽然只引入了一个按钮组件,其实build是把整个模块都打包了。

dadff9ecf205a0f29a7cd1ac7f6989c2.png

根据官网介绍:

按需引入

借助 babel-plugin-component,我们可以只引入需要的组件,以达到减小项目体积的目的。

首先,安装 babel-plugin-component

npm install -D babel-plugin-component

配置.babelrc文件

  1. {
  2. "presets": [["es2015", { "modules": false }]],
  3. "plugins": [
  4. [
  5. "component",
  6. {
  7. "libraryName": "element-ui",
  8. "styleLibraryName": "theme-chalk"
  9. }
  10. ]
  11. ]
  12. }

其实还要安装一个插件 babel-preset-es2015

npm i -D babel-preset-es2015

vue-cli-service build

52295687e67e8ccdc8b784f2d9496f6a.png

报错:Plugin/Preset files are not allowed to export objects, only functions,说明babel版本太高了,不兼容。

两个方案可以解决:

1、降级到 babel 6.0 版本

2、安装新插件

npm i -D babel-preset-env

配置.babelrc文件

  1. {
  2. "presets": [["env", {"modules": false}]],
  3. "plugins": [[
  4. "component",
  5. {
  6. "libraryName": "element-ui",
  7. "styleLibraryName": "theme-chalk"
  8. }
  9. ]]
  10. }

vue-cli-service build 如此就大功告成了

4e21cb79842370144b8fb0159835b180.png

最后也许你不是在main.js里边引入组件注册,就有可能报这错。

element/index.js

  1. import { Button, Input } from 'element-ui'
  2. const element = {
  3. install: function (Vue) {
  4. Vue.use(Button)
  5. Vue.use(Input)
  6. }
  7. }
  8. export default element

main.js

  1. import element from './components/element/index'
  2. import 'element-ui/lib/theme-chalk/index.css'
  3. Vue.use(element)

vue-cli-service build

TypeError:Cannot read property 'bindings' of null at Scope.moveBindingTo

7663493f71660cdf358316b966212364.png

原因:在webpack 4.2以上使用,babel-preset-env配置文件【env配置有问题】

  1. // .babelrc配置
  2. {
  3. "presets": ["@babel/preset-env"],
  4. "plugins": [[
  5. "component",
  6. {
  7. "libraryName": "element-ui",
  8. "styleLibraryName": "theme-chalk"
  9. }
  10. ]]
  11. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/324797
推荐阅读
  

闽ICP备14008679号