TinyMCE w/Rails 6 和 webpacker - 无图标,turbolink

phi*_*hil 1 tinymce ruby-on-rails

我们正在尝试使用 Webpacker(和 Stimulus)将我们的应用程序升级到 Rails 6。除了 TinyMCE 之外,一切都很顺利。我们有两个问题,我会在单独的问题中问他们。

我们安装 TinyMCE 使用

yarn add tinymce
Run Code Online (Sandbox Code Playgroud)

并且有版本5.3.0

在我们的刺激控制器标头中,我们有:

import tinymce from 'tinymce/tinymce';
import 'tinymce/themes/silver';
import 'tinymce/skins/ui/oxide/skin.min';
import 'tinymce/skins/ui/oxide/content.min';

import 'tinymce/plugins/paste';
import 'tinymce/plugins/link';
Run Code Online (Sandbox Code Playgroud)

然后在控制器connect块中我们有:

  connect() {
    console.log('gonna reload');
    require.context(
      '!file-loader?name=[path][name].[ext]&context=node_modules/tinymce&outputPath=js!tinymce/skins',
      true,
      /.*/
    );
    tinymce.init({
      selector: '.tinymce',
      plugins: ['paste', 'link'],
      skin: false
    });
  }
Run Code Online (Sandbox Code Playgroud)

这是基本上有效的代码,除了在控制台中我看到:

VM40 application-68201fac0dcbbcb543e0.js:213771 GET https://xxx.ngrok.io/packs/js/icons/default/icons.js net::ERR_ABORTED 404 (Not Found)
VM40 application-68201fac0dcbbcb543e0.js:224775 Failed to load icons: default from url https://xxx.ngrok.io/packs/js/icons/default/icons.js
Run Code Online (Sandbox Code Playgroud)

我们需要另一个require.context来处理这些的加载吗?

小智 5

看起来 TinyMCE 不再动态加载图标,因此必须指示 Webpack 手动将它们包含在包中。在tinymce导入之后添加图标导入对我有用:

import 'tinymce/icons/default';
Run Code Online (Sandbox Code Playgroud)