前端:vue-element-admin 搭建踩坑笔记

news2024/12/26 12:53:26

❤️作者主页:IT技术分享社区

❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。

❤️个人荣誉: 数据库领域优质创作者🏆,华为云享专家🏆,阿里云专家博主🏆 

❤️个人博客:IT技术分享社区

❤️公众号/小程序:IT技术分享社区 (运营五年)

❤️好文章点赞 👍 收藏 ⭐再看,养成习惯

目录

1、本地安装node

2、克隆vue-element-admin项目

3、处理tui-editor依赖报错

找到package.json 去掉 "tui-editor": "1.3.3"

然后执行单独安装tui-editor

4、安装其它依赖包

5、替换使用tui-editor的内容

6、启动项目

7、运行效果


 

1、本地安装node

首先本地安装后nodejs,我本地的版本如下:

PS E:\hgm\vue-admin\vue-element-admin> npm -v
6.14.16
PS E:\hgm\vue-admin\vue-element-admin> node -v
v14.19.1


配置淘宝镜像

#配置npm为淘宝镜像
npm config set registry https://registry.npm.taobao.org
#查看配置是否正确
npm config get registry

2、克隆vue-element-admin项目

本地新建文件夹,比如E:\\vue-admin 然后执行命令克隆项目

# 克隆项目
git clone https://github.com/PanJiaChen/vue-element-admin.git

克隆之后文档目录如下

3、处理tui-editor依赖报错

找到package.json 去掉 "tui-editor": "1.3.3"

路径:vue-element-admin的根目录

原因:tui-editor(富文本编辑器插件)更名造成的,现在已经改名为toast-ui/editor并且该文件名和方法名都进行可修改,所以需要手动处理。

修改内容如下:

然后执行单独安装tui-editor

因为vue-element-admin项目依赖tui-editor ,手动执行命令安装就行

npm install --save @toast-ui/vue-editor

4、安装其它依赖包

因为依赖包比较多,安装需要几分钟,大家耐心等几分钟。

npm install 

注意:不要使用cnpm命令安装依赖包,会出现各种依赖问题。

5、替换使用tui-editor的内容

路径:E:\vue-admin\vue-element-admin\src\components\MarkdownEditor\index.vue

修改后的index.vue的完整内容,具体如下:

<template>
  <div :id="id" />
</template>

<script>
// deps for editor
import 'codemirror/lib/codemirror.css' // codemirror
// 老版本注释掉
//import 'tui-editor/dist/tui-editor.css' // editor ui
//import 'tui-editor/dist/tui-editor-contents.css' 
// editor content
//import Editor from '@tui-editor' 
//替换为新的
import '@toast-ui/editor/dist/toastui-editor.css';
import Editor from '@toast-ui/vue-editor'
import defaultOptions from './default-options'

export default {
  name: 'MarkdownEditor',
  props: {
    value: {
      type: String,
      default: ''
    },
    id: {
      type: String,
      required: false,
      default() {
        return 'markdown-editor-' + +new Date() + ((Math.random() * 1000).toFixed(0) + '')
      }
    },
    options: {
      type: Object,
      default() {
        return defaultOptions
      }
    },
    mode: {
      type: String,
      default: 'markdown'
    },
    height: {
      type: String,
      required: false,
      default: '300px'
    },
    language: {
      type: String,
      required: false,
      default: 'en_US' // https://github.com/nhnent/tui.editor/tree/master/src/js/langs
    }
  },
  data() {
    return {
      editor: null
    }
  },
  computed: {
    editorOptions() {
      const options = Object.assign({}, defaultOptions, this.options)
      options.initialEditType = this.mode
      options.height = this.height
      options.language = this.language
      return options
    }
  },
  watch: {
    value(newValue, preValue) {
      if (newValue !== preValue && newValue !== this.editor.getMarkdown()) {
        this.editor.setMarkdown(newValue)
      }
    },
    language(val) {
      this.destroyEditor()
      this.initEditor()
    },
    height(newValue) {
      this.editor.height(newValue)
    },
    mode(newValue) {
      this.editor.changeMode(newValue)
    }
  },
  mounted() {
    this.initEditor()
  },
  destroyed() {
    this.destroyEditor()
  },
  methods: {
    initEditor() {
      this.editor = new Editor({
        el: document.getElementById(this.id),
        ...this.editorOptions
      })
      if (this.value) {
        this.editor.setMarkdown(this.value)
      }
      this.editor.on('change', () => {
        this.$emit('input', this.editor.getMarkdown())
      })
    },
    destroyEditor() {
      if (!this.editor) return
      this.editor.off('change')
      this.editor.remove()
    },
    setMarkdown(value) {
      this.editor.setMarkdown(value)
    },
    getMarkdown() {
      return this.editor.getMarkdown()
    },
    setHtml(value) {
      this.editor.setHtml(value)
    },
    getHtml() {
      return this.editor.getHtml()
    }
  }
}
</script>



修改内容:

导入的包

import '@toast-ui/editor/dist/toastui-editor.css';
import Editor from '@toast-ui/vue-editor'

index.vue 中方法替换

getValue和setValue分别换成getMarkdown和setMarkdown

6、启动项目

执行启动命令

npm run dev

说明:警告信息不影响正常启动

7、运行效果

登录界

主界面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/102478.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MySQL基础教程】MySQL概述、安装与数据模型

前言 本文为 【MySQL基础教程】 相关内容介绍&#xff0c;下边将对MySQL概述&#xff0c;MySQL数据库介绍与安装&#xff08;包括&#xff1a;MySQL数据库版本、MySQL数据库下载、MySQL数据库安装、MySQL启动与停止、客户端连接&#xff09;&#xff0c;数据模型&#xff08;包…

深入浅出学习Linux

Linux作为自由软件有两个特点&#xff1a;一是它免费提供源代码&#xff0c;二是爱好者可以根据自己的需要自由修改、复制和发布源码 Linux的发行版说简单点就是将Linux内核与应用软件做一个打包。 1、Red Hat Linux&#xff08;小红帽&#xff09;&#xff1a;创作于1993年 2…

程序人生与世界杯的火花

卡塔尔世界杯 文章目录1.第一次了解世界杯2.世界杯使用了哪些新技术3.AI 艺术画4.Python代码画了个球状5.踢球和软件团队开发软件有什么异同6.体育是一种国际语言1.第一次了解世界杯 2010年南非世界杯&#xff0c;那会好像记得上大二&#xff0c;学校包车去的五棵松体育馆&…

CSAPP Architecture Lab PartC满分

CSAPP Architecture Lab 此lab涉及Y86-64的实现&#xff0c;具体Y86的内容可查看CSAPP第四章,做完本实验可以提高你对处理器设计以及软件与硬件的理解。 从CMU官网下载完所需实验包后&#xff0c;参考实验所给的官方文档simguide.pdf&#xff0c;首先建立实验环境&#xff0c…

Zookeeper生产常用命令大全(最新3.8.0版本)

文章目录官方文档一、服务端二、客户端1、连接客户端2、help3、create1> 创建持久节点2> 创建临时节点3> 创建持久有序节点4> 创建临时有序节点5> 创建ttl节点6> 创建容器节点4、get5、set6、ls7、stat8、删除节点1> delete2> deleteall8、其他命令二、…

PID算法控制

文章目录一、PID算法二、控制方法对比PID的手动整定PID衰减曲线整定PID调节器各校正环节的作用是&#xff1a;计算注意事项PID算法的一般表达式是&#xff1a;一、PID算法 PID控制是最早发展的自动控制策略之一&#xff0c;是微机化控制系统的一个重要组成部分&#xff0c;整个…

大数据必学Java基础(一百一十五):Session域监听器

文章目录 Session域监听器 一、Session域共有四个监听器接口 二、监听器代码 Session域监听器

学好Python的未来7大就业方向,月薪不低于2w!

最近很多人都有一个问题&#xff1a;“ 我想学 Python&#xff0c;但是学完 Python 后都能干啥 &#xff1f;” “ 现在学 Python&#xff0c;哪个方向最简单&#xff1f;哪个方向最吃香 &#xff1f;” “ …… ” 相信不少 Python 的初学者&#xff0c;都会遇到上面的这些…

[ 数据结构 -- 手撕排序算法第六篇 ] 快速排序(非递归版本)

文章目录前言一、常见的排序算法二、快速排序的非递归版本三、具体步骤四、非递归的代码实现五、时间复杂度4.1最好情况4.2最坏情况六、总结前言 手撕排序算法第六篇&#xff1a;快速排序&#xff01; 从本篇文章开始&#xff0c;我会介绍并分析常见的几种排序&#xff0c;例如…

143744-88-1,标记肽Dansyl-GCVLS

法尼基二磷酸法尼基转移酶(FTase)的荧光底物。该五肽基于H-Ras的c端区域&#xff0c;其n端有一个丹酚基团。由于半胱氨酸巯基的法尼化作用&#xff0c;丹酚基从极性分子环境变为非极性分子环境&#xff0c;伴随而来的是荧光增强和丹酚基向较低波长发射最大值的转移。该产物的完…

【设计模式】代理模式 (六)

文章目录5.1 代理模式5.1.1 概述5.1.2 结构5.1.3 静态代理5.1.4 JDK动态代理5.1.5 CGLIB动态代理5.1.6 三种代理的对比5.1.7 优缺点5.1.8 使用场景5.1 代理模式 5.1.1 概述 由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时&#xff0c;访问对象不适合或者不…

程序员现状分析,什么时候是进入IT行业的黄金时期?千万注意了

近些来&#xff0c;程序员成为了很多人就业的首选。但是大多数人对于程序员的了解仅仅停留在了薪资待遇上&#xff0c;但是他们对于程序员的工作却所知甚少。甚至有不少人只听说了程序员的工资很高&#xff0c;并不知道程序员的工资会高到什么地步。 其实近些年来&#xff0c;随…

Mysql窗口函数 (知识点梳理+题目解析+面试实战)(四万字长文,一文读懂,建议收藏后食用)

前言&#xff1a; 本文章是原创50篇时开启的纪念作&#xff0c;之前的文章基本5000字&#xff0c;而本篇约4.5万字&#xff0c;真一篇顶九篇。 窗口函数作为Mysql 8的新特性以及面试笔试的重点&#xff0c;掌握并且进行来练习是非常有必要的。本文章详细介绍窗口函数的方…

uni-app app分享到朋友和朋友圈

app分享到朋友和朋友圈 uni.share(OBJECT) uni-app的App引擎封装了微信、QQ、微博的分享SDK&#xff0c;开发者可以直接调用相关功能 可以分享到微信、QQ、微博&#xff0c;每个社交平台被称为分享服务提供商&#xff0c;即provider。 可以分享文字、图片、图文、音乐、视频…

热门技术中的应用:微服务相关协议-第32讲-RPC协议综述:远在天边,近在眼前

前面我们讲了容器网络如何实现跨主机互通,以及微服务之间的相互调用。 网络是打通了,那服务之间的互相调用,该怎么实现呢?你可能说,咱不是学过Socket吗。服务之间分调用方和被调用方,我们就建立一个TCP或者UDP的连接,不就可以通信了? 你仔细想一下,这事儿没这么简单。…

[附源码]计算机毕业设计Python高校商铺管理系统论文(程序+源码+LW文档)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

微服务框架 SpringCloud微服务架构 微服务面试篇 54 微服务篇 54.3 Nacos 如何支撑数十万服务注册压力?

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 微服务面试篇 文章目录微服务框架微服务面试篇54 微服务篇54.3 Nacos 如何支撑数十万服务注册压力&#xff1f;54.3.1 Nacos 服务端源码54 微…

信息提取 Information Extraction

定义 信息提取任务是从一组非结构化自然语言文本中的每个文本中识别有关实体、关系或事件的预定义类的信息&#xff0c;并通过以下任一方式以结构化形式记录此信息&#xff1a; • 注释源文本&#xff0c;使用 XML 标签 • 填写与文本分开的数据结构&#xff0c;例如模板或数据…

centos8 nginx 开启 ssl(https)

centos8 nginx 开启 ssl&#xff08;https&#xff09;首先申请证书&#xff0c;以阿里云为例centos8 nginx 安装 sslnginx 配置文件遇到问题一直没有给域名开启 https&#xff0c;在 Cesium 沙盒模拟中使用 http 资源会提示错误&#xff0c;于是想着把 https 打开&#xff0c;…

【计算机毕业设计】基于HTML+CSS+JavaScript大学生心理咨询网设计毕业论文源码

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…