草庐IT

如何在Vue3+js项目(脚手架)中使用(下载安装及运行)element-plus以及解决使用过程中遇到的问题

黛琳ghz 2023-11-26 原文

文章目录

📋前言

🎯关于 ElementUI 框架描述

🧩设计原则

1️⃣一致 Consistency

2️⃣反馈 Feedback

3️⃣效率 Efficiency

4️⃣可控 Controllability

🧩环境支持

🎯安装element-plus

🧩遇到的问题

🧩全局配置

🧩局部配置

🎯运行项目

🧩遇到的问题

🎯运行结果

📋写在最后


📋前言

在目前 Vue.js 盛行的前端开发时代,一个较为稳定、可持续更新、具有强大团队背景的 UI 前端 PC 框架——ElementUI(饿了么UI)框架应运而生。它带给我们的不仅仅是柔美、华丽、实用的控件,更多的是那种轻松上手、简单快捷的引用组件方式,以及它开放式的、目录明确的帮助文档。


本篇文章主要记录了在vue3项目中下载使用element-plus的过程,包括了下载、导入报错的情况还有运行报错的情况。最后也是还未解决的,就是vue项目在宝塔中部署,通过 WebHook 实现自动 build 打包vue项目时,出现关于 element-plus 的报错,导致不能成功build。

🎯关于 ElementUI 框架描述

基于vue2,element-ui地址:https://element.eleme.io/#/zh-CN

基于vue3,element-plus地址:https://element-plus.gitee.io/zh-CN/

因为项目是基于vue3的,所以接下来重点讲述element-plus。


🧩设计原则

1️⃣一致 Consistency

  • 与现实生活一致: 与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念;

  • 在界面中一致: 所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。

2️⃣反馈 Feedback

  • 控制反馈: 通过界面样式和交互动效让用户可以清晰的感知自己的操作;

  • 页面反馈: 操作后,通过页面元素的变化清晰地展现当前状态。

3️⃣效率 Efficiency

  • 简化流程: 设计简洁直观的操作流程;

  • 清晰明确: 语言表达清晰且表意明确,让用户快速理解进而作出决策;

  • 帮助用户识别: 界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。

4️⃣可控 Controllability

  • 用户决策: 根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;

  • 结果可控: 用户可以自由的进行操作,包括撤销、回退和终止当前操作等。


🧩环境支持

  • Element Plus 可以在支持 ES2018 和 ResizeObserver 的浏览器上运行。 如果您确实需要支持旧版本的浏览器,请自行添加 Babel 和相应的 Polyfill 。
  • 由于 Vue 3 不再支持 IE11,Element Plus 也不再支持 IE 浏览器。


🎯安装element-plus

使用包管理器(如 NPM、Yarn 或 pnpm)安装 Element Plus,然后就可以使用打包工具,例如 Vite 或 webpack。

# 选择一个你喜欢的包管理器

# NPM
$ npm install element-plus --save

# Yarn
$ yarn add element-plus

# pnpm
$ pnpm install element-plus

🧩遇到的问题

npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve...

解决方法:npm 配置集旧版-对等-对等值设置为 true

npm config set legacy-peer-deps true

🧩全局配置

// element-plus 全局引用
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
createApp(App).use(ElementPlus).mount('#app')

🧩局部配置

用什么配置什么,比如说button

//手动引入样式
import { ElButton } from 'element-plus'
import 'element-plus/theme-chalk/el-button.css' //el-button是按钮的样式
import 'element-plus/theme-chalk/base.css'   //整体的样式
 
export default defineComponent({
  name: 'App',
  components: {
    ElButton
  }
})

具体其他配置方法见官网描述:https://element-plus.gitee.io/zh-CN/guide/quickstart.html


🎯运行项目

执行npm run xxx后

🧩遇到的问题

Can't import the named exportArrowDown' from non EcmaScript module (only default export is available)


终端

页面

解决方法:在vue.config.js中添加如下代码

configureWebpack: {
    module:{
        rules:[{
            test:/\.mjs$/,
            include:/node_modules/,
            type:'javascript/auto'
        }]
    }
}

🎯运行结果

以button组件为例子,从官网复制代码进行测试。这里不测试icon了,因此没有复制到icon的代码,如需请到官网查询:https://element-plus.gitee.io/zh-CN/component/button.html

 <el-row class="mb-4">
    <el-button>Default</el-button>
    <el-button type="primary">Primary</el-button>
    <el-button type="success">Success</el-button>
    <el-button type="info">Info</el-button>
    <el-button type="warning">Warning</el-button>
    <el-button type="danger">Danger</el-button>
  </el-row>

  <el-row class="mb-4">
    <el-button plain>Plain</el-button>
    <el-button type="primary" plain>Primary</el-button>
    <el-button type="success" plain>Success</el-button>
    <el-button type="info" plain>Info</el-button>
    <el-button type="warning" plain>Warning</el-button>
    <el-button type="danger" plain>Danger</el-button>
  </el-row>

  <el-row class="mb-4">
    <el-button round>Round</el-button>
    <el-button type="primary" round>Primary</el-button>
    <el-button type="success" round>Success</el-button>
    <el-button type="info" round>Info</el-button>
    <el-button type="warning" round>Warning</el-button>
    <el-button type="danger" round>Danger</el-button>
  </el-row>

运行项目,button组件成功出来。下面的内容不予理会。

📋写在最后

到此成功完成 element-plus 的安装到运行,以及解决遇到的一些问题,关于vue项目在宝塔中部署,通过 WebHook 实现自动 build 打包vue项目时,出现 element-plus 相关的报错,导致不能成功 build 的这个问题还未解决,后续解决了,再发文做笔记,感谢支持,希望文章对你有所帮助。


🎯点赞收藏,防止迷路🔥 


有关如何在Vue3+js项目(脚手架)中使用(下载安装及运行)element-plus以及解决使用过程中遇到的问题的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

  2. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  3. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  4. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  5. ruby - 在 Ruby 中使用匿名模块 - 2

    假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于

  6. ruby - 如何在 Ruby 中顺序创建 PI - 2

    出于纯粹的兴趣,我很好奇如何按顺序创建PI,而不是在过程结果之后生成数字,而是让数字在过程本身生成时显示。如果是这种情况,那么数字可以自行产生,我可以对以前看到的数字实现垃圾收集,从而创建一个无限系列。结果只是在Pi系列之后每秒生成一个数字。这是我通过互联网筛选的结果:这是流行的计算机友好算法,类机器算法:defarccot(x,unity)xpow=unity/xn=1sign=1sum=0loopdoterm=xpow/nbreakifterm==0sum+=sign*(xpow/n)xpow/=x*xn+=2sign=-signendsumenddefcalc_pi(digits

  7. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  8. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  9. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  10. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

随机推荐