首页 > 解决方案 > 通过 webpack 将 CKEditor 4 与 Rails 6 集成

问题描述

我必须升级一个使用 CKedtior 来实现文本编辑器功能的遗留应用程序。

由于 ckeditor 的 Ruby gem 不再那么好维护,而且 Rails 6 似乎是一个问题,我决定直接使用 webpacker。
我使用命令添加了 ckeditor v 4,yarn add然后将 js 文件导入到我的 application.js/active_admin.js 文件中。( import "ckeditor4";)
根据文档,我还必须设置一个CKEDITOR_BASEPATH常量。该常量应指向 ckeditor 文件所在的路径。
为了拥有这些文件,我已经使用这个附加设置配置了 webpacker:environment.config.set('output.libraryTarget', 'umd')

我认为这会在我的 public/packs/js 文件夹中创建一个 ckeditor 目录,但它不起作用。如何让 webpack 创建这个折叠/文件?

标签: ruby-on-railsrubywebpackwebpacker

解决方案


我通过添加 CopyPlugin 并像这样配置它来解决这个问题:

environment.plugins.append('CopyPlugin',
    new CopyPlugin({
        patterns: [
            {
                from: '{config.js,contents.css,styles.js,adapters/**/*,lang/**/*,plugins/**/*,skins/**/*,vendor/**/*}',
                to: resolvePath( distPath, 'js/ckeditor' ),
                context: resolvePath( __dirname, '../../node_modules', 'ckeditor4' )
            }
        ]
    })
)

推荐阅读