以下步骤将帮助您使用 Rollup.js 和 ES6+ 语法 打包 .zip 版本的 TinyMCE。此过程假设用户具有使用 Rollup.js 和 ES6+ 语法 的经验。以下步骤提供了一个使用 Rollup.js 打包基本 TinyMCE 配置的可用示例。
要求
本指南需要以下内容:
Node.js 和 npm
如何使用 Rollup.js 的基础知识
步骤
下载并解压最新版本的 TinyMCE:
对于有访问权限的高级自托管 TinyMCE 客户,请从 Tiny 账户:下载 下载
.zip文件。对于所有其他用户,请从 TinyMCE 自托管版本 下载 TinyMCE Dev 包。
将以下依赖项添加到项目中。
例如:
npm install --save-dev \ webpack \ webpack-cli \ mini-css-extract-plugin \ html-webpack-plugin \ css-loader
创建一个新的源文件,用于从 TinyMCE 导入所需组件并配置编辑器。
示例
src/editor.js/* Import TinyMCE */ import tinymce from '../tinymce/js/tinymce/tinymce'; /* Default icons are required. After that, import custom icons if applicable */ import '../tinymce/js/tinymce/icons/default/icons'; /* Required TinyMCE components */ import '../tinymce/js/tinymce/themes/silver/theme'; import '../tinymce/js/tinymce/models/dom/model'; /* Import the default skin (oxide). Replace with a custom skin if required. */ import '../tinymce/js/tinymce/skins/ui/oxide/skin.css'; /* Import plugins */ import '../tinymce/js/tinymce/plugins/advlist'; import '../tinymce/js/tinymce/plugins/code'; import '../tinymce/js/tinymce/plugins/emoticons'; import '../tinymce/js/tinymce/plugins/emoticons/js/emojis'; import '../tinymce/js/tinymce/plugins/link'; import '../tinymce/js/tinymce/plugins/lists'; import '../tinymce/js/tinymce/plugins/table'; import '../tinymce/js/tinymce/plugins/help'; import '../tinymce/js/tinymce/plugins/help/js/i18n/keynav/en'; // Import premium plugins from NPM import 'tinymce-premium/plugins/advcode'; import 'tinymce-premium/plugins/tinycomments'; // Always include the licensekeymanager plugin when using premium plugins with a commercial license. import 'tinymce-premium/plugins/licensekeymanager'; /* From ZIP download - download separately and add to /src/plugins */ /* import './plugins/<plugincode>'; */ /* content UI CSS is required (using the default oxide skin) */ import contentUiSkinCss from '../tinymce/js/tinymce/skins/ui/oxide/content.css'; /* The default content CSS can be changed or replaced with appropriate CSS for the editor content. */ import contentCss from '../tinymce/js/tinymce/skins/content/default/content.css'; /* Initialize TinyMCE */ export function render () { tinymce.init({ selector: 'textarea#editor', license_key: 'gpl', plugins: 'advlist code emoticons link lists table help', toolbar: 'bold italic | bullist numlist | link emoticons', skin: false, content_css: false, content_style: contentUiSkinCss.toString() + '\n' + contentCss.toString(), /* Optional: Configure external_plugins for lazy loading premium plugins * Remove the import or require statement for any premium plugin you want to lazy load, * then uncomment and configure external_plugins below: */ // external_plugins: { // 'advcode': '/plugins/advcode/plugin.min.js', // 'tinycomments': '/plugins/tinycomments/plugin.min.js' // }, }); };gpl许可证密钥用于在 GNU 通用公共许可证 (GPL) 下自托管 TinyMCE。要使用商业许可证或包含高级插件,请将gpl替换为有效的许可证密钥。有关详细信息,请参阅 设置许可证。更新项目的 Rollup.js 配置以加载 TinyMCE CSS。
示例
rollup.config.jsimport postcss from 'rollup-plugin-postcss'; import commonjs from '@rollup/plugin-commonjs'; export default { input: 'src/index.js', plugins: [ commonjs(), postcss({ include: "**/skin.css", inject: false, extract: true }), postcss({ include: "**/content.css", inject: false, extract: false }) ], output: { file: 'public/main.bundle.js', format: 'umd' } };将 TinyMCE 资源和配置添加到项目中,并提供一个目标元素来初始化编辑器。
示例
src/index.jsimport * as editor from './editor'; const editorArea = () => { const element = document.createElement('textarea'); element.id = 'editor'; return element }; const parent = document.createElement('p'); parent.appendChild(editorArea()); document.body.appendChild(parent); editor.render();示例
demo.html<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>TinyMCE Rollup Demo</title> <link rel="stylesheet" href="main.bundle.css"> </head> <body> <h1>TinyMCE Rollup Demo</h1> <script src="main.bundle.js"></script> </body> </html>运行 Rollup.js 以测试 bundle,例如:
rollup --config
如果 Rollup.js 运行成功,请检查编辑器是否在应用程序中加载。如果 Rollup.js 失败,请检查任何错误并查看此过程中的配置更改;在将 TinyMCE 打包到现有项目时,您可能需要调整以解决冲突或其他问题。
后续步骤
有关以下内容的信息:
向 bundle 添加 TinyMCE 插件,请参阅:使用模块加载打包 TinyMCE 插件。
使用由 Tiny 提供的编辑器内容 CSS,包括包含在 Enhanced Skins & Icon Packs 中的 premium CSS,请参阅:使用模块加载打包 TinyMCE 内容 CSS。
创建自定义编辑器内容 CSS,请参阅:内容外观选项 -
content_css。使用由 Tiny 提供的 TinyMCE skins,包括包含在 Enhanced Skins & Icon Packs 中的增强 skins,请参阅:使用模块加载打包 TinyMCE skins。
为 TinyMCE 创建自定义 skin,请参阅:为 TinyMCE 创建 skin。
使用由 Tiny 提供的图标包,包括包含在 Enhanced Skins & Icon Packs 中的 premium 图标包,请参阅:使用模块加载打包 TinyMCE 图标包。
为 TinyMCE 创建自定义图标包,请参阅:为 TinyMCE 创建图标包。
使用语言包本地化 TinyMCE 用户界面,请参阅:打包 TinyMCE 的用户界面本地化。