引入ElementUI 日历组件报错Module parse failed: Unexpected token (65:6)

由于业务需求,需要一个小型日历,ElementUI 组件中有一个日历组件,不过太大了,功能没有日期选择器中的日历全,所以,就想到单独引入日历选择器中中的日历组件
在这里插入图片描述

打开源码包找到日历组件所在位置,并引入

import DatePanel from "element-ui/packages/date-picker/src/panel/date.vue";

果不其然,报错了

Module parse failed: Unexpected token (65:6)
You may need an appropriate loader to handle this file type.
|     }, this.$slots.default);
|     const wrap = (
|       <div
|         ref="wrap"
|         style={ style }

最后有人帮忙解决了

1、安装依赖
https://github.com/vuejs/babel-plugin-transform-vue-jsx

npm install\
  babel-plugin-syntax-jsx\
  babel-plugin-transform-vue-jsx\
  babel-helper-vue-jsx-merge-props\
  babel-preset-env\
  --save-dev

2、添加vue-cli3的 vue.config.js配置

const path = require('path')

function resolve(dir) {
  return path.join(__dirname, dir)
}

module.exports = {
  chainWebpack: config => {
    config.module
      .rule('thejs')
      .test(/\.js$/)
      .include
        .add(path.resolve('src'))
        .add(path.resolve('node_modules/element-ui/packages'))
        .end()
      .use('babel-loader')
        .loader('babel-loader')
        .end()
  }
}

或者

module.exports = {
    transpileDependencies: [
        'element-ui/packages'
    ]
}

最后成功引入, 不过修改默认是隐藏的, 而且组件不接收参数,可以使用继承的方式将隐藏属性改为显示,业务页面再进行引入

<script>
import DatePanel from "element-ui/packages/date-picker/src/panel/date.vue";

export default {

  extends: DatePanel,

  data() {
    return {
      visible: true
    };
  }
};
</script>

修改样式之后的效果
在这里插入图片描述

参考
https://github.com/ElemeFE/element/issues/14379

根据引用内容,这个报错是因为vue-loader版本过高,需要下载低版本的vue-loader来解决。你可以使用以下命令来安装低版本的vue-loader: npm i vue-loader@13.0.0 --save-dev 同时,你可以参考这篇文章来获取更多信息:https://www.freesion.com/article/87781082538/ 对于引用内容,报错"Module parse failed: Unexpected token (95:59) You may need an appropriate loader to handle this file type."是因为在你安装layui时遇到了问题。这个错误通常发生在模块解析阶段,可能是因为缺少适当的加载器来处理该文件类型。你可以尝试安装相应的加载器来解决这个问题。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [Module parse failed: Unexpected token (135:0) You may need an appropriate loader to handle this file](https://blog.csdn.net/YI_Zyd/article/details/115726208)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Module parse failed: Unexpected token](https://download.csdn.net/download/weixin_38535221/14886682)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值