如何将Tinymce与Symfony再现整合?

Ale*_*ant 4 tinymce symfony yarnpkg webpack-encore

我有一个使用flexencoreSymfony4项目.我想补充一下.

所以我添加了tinymce项目:

$ yarn add tinymce
Run Code Online (Sandbox Code Playgroud)

我编辑了我的app.js文件:

require('../css/app.scss');

// Import TinyMCE
import tinymce from 'tinymce/tinymce';

// A theme is also required
import 'tinymce/themes/modern/theme';

// Any plugins you want to use has to be imported
import 'tinymce/plugins/paste';
import 'tinymce/plugins/link';

// Initialize the app
tinymce.init({
    selector: 'textarea',

    plugins: ['paste', 'link']
});
Run Code Online (Sandbox Code Playgroud)

我编译:

$ yarn run encore dev
Run Code Online (Sandbox Code Playgroud)

编译成功:

Running webpack ...

 DONE  Compiled successfully in 17600ms                                                                                                                                                                                                             

 I  8 files written to public\build
Done in 20.23s.
Run Code Online (Sandbox Code Playgroud)

我的textareas被一个空白页面取代.

我在文档中找到了解决方案,当我将node_modules/tinymce/skins目录复制到时,它工作正常/public/build/skins.但是每次纱线编制后我仍然需要这样做

有没有办法自动将此node_modules/tinymce/skins目录复制到/public/build/skins有可能更新webpack.config.js它吗?

PS:我看了一些recommandationswebpack-loader,但我不明白我必须做的.

Ale*_*ant 9

我添加了copy webpack插件

yarn add copy-webpack-plugin --dev
Run Code Online (Sandbox Code Playgroud)

我编辑了我的webpack.config.js只添加了4行:

var Encore = require('@symfony/webpack-encore');

//DECLARATION OF THE NEW PLUGIN
var CopyWebpackPlugin = require('copy-webpack-plugin');

Encore
// the project directory where all compiled assets will be stored
    .setOutputPath('public/build/')

    // the public path used by the web server to access the previous directory
    .setPublicPath('/build')

    // will create public/build/admin/app.js and public/build/admin/app.css
    .addEntry('admin', './assets/js/app.js')

    //Some project lines
    //...
    //...

    //I call the plugin
    .addPlugin(new CopyWebpackPlugin([
        // Copy the skins from tinymce to the build/skins directory
        { from: 'node_modules/tinymce/skins', to: 'skins' },
    ]))

    //Some project lines
    //...
    //...
;

// export the final configuration
module.exports = Encore.getWebpackConfig();
Run Code Online (Sandbox Code Playgroud)