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

news/2025/1/19 6:01:37/

❤️作者主页: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.ppmy.cn/news/5110.html

相关文章

小红书素人怎么找?素人投放需要注意什么?

小红书素人怎么找&#xff1f;素人投放需要注意什么? 在小红书上做营销推广&#xff0c;如果是投放给素人&#xff0c;可以帮助你在短时间内建立起对品牌的认知&#xff0c;那么&#xff0c;素人怎么找呢&#xff1f; 一般都是从小红书官方小程序里寻找。 我们可以在小红书…

Linux编辑器-vim的使用

vi/vim的区别简单点来说&#xff0c;它们都是多模式编辑器&#xff0c;不同的是vim是vi的升级版本&#xff0c;它不仅兼容vi的所有指令&#xff0c;而且还有一些新的特性在里面。例如语法加亮&#xff0c;可视化操作不仅可以在终端运行&#xff0c;也可以运行于xwindow、 mac o…

Vuex的相关知识

「Vuex的相关知识」 ​ vuex是一种对vue 应用中多个组件的共享状态进行集中式的管理(读/写)&#xff1b; vuex的工作原理&#xff1a; https://segmentfault.com/a/1190000021717329 ​ vuex 核心概念和API&#xff1a;state、mutations、actions、getters、modules、向外暴…

前端简单案例——扩展卡

效果展示 色块可以替换成图片&#xff0c;改变background-color为background-image即可。 html代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content&quo…

插入类排序

问题引入 【问题描述】 实现直接插入排序、希尔排序。 【输入形式】 输入2组待排序序列。 【输出形式】 输出分别使用插入排序、希尔排序的排序结果。 【样例输入】 5 7 3 5 0 -9 6 2 4 6 3 4 2 【样例输出】 insertSort: -9 0 3 5 7 shellSort: 2 2 3 4 4 6 程序设计 #inclu…

35-Vue之ECharts高级-样式及自适应

ECharts高级-样式及自适应前言样式直接样式高亮样式自适应前言 本篇来学习下样式及自适应的使用 样式 直接样式 这些样式一般都可以设置颜色或者背景或者字体等样式, 他们会覆盖主题中的样式 itemStyletextStylelineStyleareaStylelabel <!DOCTYPE html> <html …

【Linux】必须掌握的Linux常见指令分类讲解

目录一.Linux下的文件树二.工作目录切换命令1.ls——显示当前路径下的文件和目录2.pwd——显示当前目录的绝对值路径3.cd——切换至指定目录三.文件目录管理命令1.touch——创建空文件2.tree——树状打印目录3.mkdir——创建目录4.rmdir 和 rm ——删除目录5.cp——拷贝文件或目…

Linux基本搭建和操作

Linux基本搭建和操作1、创建三台虚拟机2、创建使用SSH远程连接3、实现IP地址与主机名的映射4、关闭和禁用防火墙5、创建目录结构6、压缩打包7、安装软件包安装jdk安装mysql8、创建脚本文件9、运行脚本文件10、免密登录配置11、远程拷贝文件1、创建三台虚拟机 序号虚拟机名称静…