vue3.x 项目使用element-plus 自动按需导入 使用v-loading报错 无法找到样式 element-plus/es/components/loading-directive/sty

本文介绍了如何在Element-Plus版本2.0.5中通过正则表达式排除loading-directive样式,详细讲解了webpack配置并展示了在组件中正常使用v-loading的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

element-plus版本:

  "element-plus": "^2.0.5",

   "unplugin-auto-import": "^0.6.1",
   "unplugin-vue-components": "^0.17.21"

解决方法

使用正则表达式 排除loading-directive的样式 exclude: new RegExp(/^(?!.*loading-directive).*$/)

  configureWebpack: config => { // webpack 配置
    const plugins = [
      AutoImport({
        resolvers: [ElementPlusResolver({
          exclude: new RegExp(/^(?!.*loading-directive).*$/) //修改此处
        })],
      }),
      Components({
        resolvers: [ElementPlusResolver()],
      }),
    ]

    if (process.env.NODE_ENV === 'production') {
      plugins.push(
        //统一配置打包插件
        new CompressionWebpackPlugin({
          algorithm: 'gzip',
          test: /\.js$|\.json$|\.css/,//匹配文件名
          threshold: 10240,//对10K以上的数据进行压缩
          minRatio: 0.8,
          deleteOriginalAssets: false,//是否删除源文件
        })
      )
    }
    config.plugins = [...config.plugins, ...plugins]
    return {
      output: { // 输出重构  打包编译后的 文件名称  【模块名称.版本号.时间戳】
        filename: `[name].${app_version}.${Timestamp}.js`,
        chunkFilename: `[name].${app_version}.${Timestamp}.js`
      },
    }
  },

然后 在组件中使用 v-loading就可以正常使用了

根据引用\[1\]中提供的信息,当前使用的版本中包含了"element-plus": "^2.0.2", "unplugin-auto-import": "^0.6.1", "unplugin-vue-components": "^0.17.20"。在解决问题时,可以先去GitHub上查找element-plus的issues,比如element-plus/issues/4855,但是发现里面的解决方式还是很好。另外,可以结合使用vs-code查看ElementPlusResolver函数的源码声明,发现其中有exclude属性可以使用来解决问题。 根据引用\[2\]中提供的代码,解决ERROR \[commonjs--resolver\] No known conditions for "./lib/locale/lang/en" specifier in "element-plus" package的问题,要安装'js-cookie',并在locale那里使用它。同时,要注意messages里面的写法,使用{...zh}的写法。具体的修改后的代码如下: ```javascript import Vue from "vue" import VueI18n from 'vue-i18n' import Cookies from 'js-cookie' import zh from './zh.js' import en from './en.js' Vue.use(VueI18n); const messages = { zh: { ...zh }, en: { ...en }, }; const i18n = new VueI18n({ locale: Cookies.get('language') || 'en', messages, }) export default i18n ``` 通过以上修改后的代码,应该能够解决这个错误。 #### 引用[.reference_title] - *1* [element-plus 自动导入 使用 v-loading 无法找到样式 element-plus/es/components/loading-directive/style...](https://blog.csdn.net/weixin_43245095/article/details/123105706)[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^v91^control_2,239^v4^insert_chatgpt"}} ] [.reference_item] - *2* [vue-i18n 报错解决](https://blog.csdn.net/month_ss_815/article/details/83787575)[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^v91^control_2,239^v4^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随便起的名字也被占用

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值