You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Vue2项目中无需API Key本地使用TinyMCE富文本编辑器

你当前的配置可以基础运行,但并未实现真正的本地部署,依然会发起TinyMCE云端资源请求,存在API Key告警和功能限制问题,可做如下调整:

一、现有配置存在的问题

  • 你仅安装了Vue封装组件@tinymce/tinymce-vue,未安装TinyMCE核心本体,组件默认会从云端拉取TinyMCE脚本,api-key="no-api-key"只是掩盖了报错提示,并不算真正的本地离线部署。

二、优化调整步骤

1. 补充安装TinyMCE核心包

执行命令安装本地版本的TinyMCE核心:

npm install tinymce --save

2. 调整组件引入和初始化配置

需要手动引入本地TinyMCE、默认主题、皮肤和用到的插件,完全避免云端请求,修改后的代码如下:

<template>
  <div id="app">
    <img alt="Vue logo" src="./assets/logo.png">
    <editor
      :tinymce="tinymce"
      :init="tinymceInit"
      v-model="content"
    />
  </div>
</template>

<script>
// 引入本地TinyMCE核心
import tinymce from 'tinymce/tinymce'
import Editor from '@tinymce/tinymce-vue'
// 引入默认主题
import 'tinymce/themes/silver'
// 引入默认皮肤样式
import 'tinymce/skins/ui/oxide/skin.min.css'
import 'tinymce/skins/content/default/content.min.css'
// 引入你用到的所有插件
import 'tinymce/plugins/advlist'
import 'tinymce/plugins/autolink'
import 'tinymce/plugins/lists'
import 'tinymce/plugins/link'
import 'tinymce/plugins/image'
import 'tinymce/plugins/charmap'
import 'tinymce/plugins/print'
import 'tinymce/plugins/preview'
import 'tinymce/plugins/anchor'
import 'tinymce/plugins/searchreplace'
import 'tinymce/plugins/visualblocks'
import 'tinymce/plugins/code'
import 'tinymce/plugins/fullscreen'
import 'tinymce/plugins/insertdatetime'
import 'tinymce/plugins/media'
import 'tinymce/plugins/table'
import 'tinymce/plugins/paste'
import 'tinymce/plugins/help'
import 'tinymce/plugins/wordcount'

export default {
  name: 'app',
  components: {
    'editor': Editor
  },
  data() {
    return {
      tinymce,
      // 富文本内容绑定变量
      content: '',
      tinymceInit: {
        height: 500,
        menubar: false,
        // 关闭云端加载相关配置
        base_url: '/tinymce',
        suffix: '.min',
        plugins: [
          'advlist autolink lists link image charmap print preview anchor',
          'searchreplace visualblocks code fullscreen',
          'insertdatetime media table paste code help wordcount'
        ],
        toolbar:
          'undo redo | formatselect | bold italic backcolor | \
          alignleft aligncenter alignright alignjustify | \
          bullist numlist outdent indent | removeformat | help'
      }
    }
  }
}
</script>

3. 静态资源打包配置(Vue CLI项目适用)

如果打包后皮肤、图标加载异常,需要在vue.config.js中配置复制TinyMCE的静态资源到打包目录:

// vue.config.js
const CopyWebpackPlugin = require('copy-webpack-plugin')

module.exports = {
  configureWebpack: {
    plugins: [
      new CopyWebpackPlugin([
        { from: 'node_modules/tinymce/skins', to: 'tinymce/skins' },
        { from: 'node_modules/tinymce/icons', to: 'tinymce/icons' }
      ])
    ]
  }
}

三、其他可选优化点

  • 把init配置抽离到data中,避免模板内写大段JSON,提升代码可读性
  • 可以根据实际使用场景裁剪不需要的插件,减小打包体积
  • 如果需要中文界面,下载中文语言包放到public/tinymce/langs目录,在init配置中加language: 'zh_CN'即可生效

内容的提问来源于stack exchange,提问作者gambit11550

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 09:57:00