代码之家  ›  专栏  ›  技术社区  ›  MTilsted

在自定义生成的ckeditor 5上导出ClassicEditor

  •  1
  • MTilsted  · 技术社区  · 7 年前

    我正在尝试使用“场景2”构建ckeditor 5,如下所述:

    https://docs.ckeditor.com/ckeditor5/latest/builds/guides/integration/advanced-setup.html

    它几乎可以工作了。在我的 app.js 我可以通过网页包和编辑一起编译 ClassicEditor.create 因此创建一个新的编辑器:)

    但是 ClassicEditor 不导出,因此任何未由webpack编译的外部javascript都无法引用 分类管理员 (我只得到“referenceerror:classiceditor未定义”)。

    那我怎么得到 分类管理员 出口?

    以下是我使用的文件:

    app.js:
    import ClassicEditorBase from '@ckeditor/ckeditor5-editor-classic/src/classiceditor';
    import EssentialsPlugin from '@ckeditor/ckeditor5-essentials/src/essentials';
    import UploadadapterPlugin from '@ckeditor/ckeditor5-adapter-ckfinder/src/uploadadapter';
    import AutoformatPlugin from '@ckeditor/ckeditor5-autoformat/src/autoformat';
    import BoldPlugin from '@ckeditor/ckeditor5-basic-styles/src/bold';
    import ItalicPlugin from '@ckeditor/ckeditor5-basic-styles/src/italic';
    import BlockquotePlugin from '@ckeditor/ckeditor5-block-quote/src/blockquote';
    import EasyimagePlugin from '@ckeditor/ckeditor5-easy-image/src/easyimage';
    import HeadingPlugin from '@ckeditor/ckeditor5-heading/src/heading';
    import ImagePlugin from '@ckeditor/ckeditor5-image/src/image';
    import ImagecaptionPlugin from '@ckeditor/ckeditor5-image/src/imagecaption';
    import ImagestylePlugin from '@ckeditor/ckeditor5-image/src/imagestyle';
    import ImagetoolbarPlugin from '@ckeditor/ckeditor5-image/src/imagetoolbar';
    import ImageuploadPlugin from '@ckeditor/ckeditor5-image/src/imageupload';
    import LinkPlugin from '@ckeditor/ckeditor5-link/src/link';
    import ListPlugin from '@ckeditor/ckeditor5-list/src/list';
    import ParagraphPlugin from '@ckeditor/ckeditor5-paragraph/src/paragraph';
    
    export default class ClassicEditor extends ClassicEditorBase {}
    
    ClassicEditor.build = {
        plugins: [
            EssentialsPlugin,
            UploadadapterPlugin,
            AutoformatPlugin,
            BoldPlugin,
            ItalicPlugin,
            BlockquotePlugin,
            EasyimagePlugin,
            HeadingPlugin,
            ImagePlugin,
            ImagecaptionPlugin,
            ImagestylePlugin,
            ImagetoolbarPlugin,
            ImageuploadPlugin,
            LinkPlugin,
            ListPlugin,
            ParagraphPlugin
        ],
        config: {
            toolbar: {
                items: [
                    'heading',
                    '|',
                    'bold',
                    'italic',
                    'link',
                    'bulletedList',
                    'numberedList',
                    'imageUpload',
                    'blockQuote',
                    'undo',
                    'redo'
                ]
            },
            image: {
                toolbar: [
                    'imageStyle:full',
                    'imageStyle:side',
                    '|',
                    'imageTextAlternative'
                ]
            },
            language: 'en'
        }
    };
    

    webpack.config.js:

    // webpack.config.js
    
    'use strict';
    
    const path = require( 'path' );
    const { styles } = require( '@ckeditor/ckeditor5-dev-utils' );
    
    module.exports = {
        // https://webpack.js.org/configuration/entry-context/
        entry: './app.js',
    
        // https://webpack.js.org/configuration/output/
        output: {
            path: path.resolve( __dirname, 'dist' ),
            filename: 'bundle.js'
        },
    
        module: {
            rules: [
                {
                    // Or /ckeditor5-[^/]+\/theme\/icons\/[^/]+\.svg$/ if you want to limit this loader
                    // to CKEditor 5 icons only.
                    test: /\.svg$/,
    
                    use: [ 'raw-loader' ]
                },
                {
                    // Or /ckeditor5-[^/]+\/theme\/[^/]+\.css$/ if you want to limit this loader
                    // to CKEditor 5 theme only.
                    test: /\.css$/,
                    use: [
                        {
                            loader: 'style-loader',
                            options: {
                                singleton: true
                            }
                        },
                        {
                            loader: 'postcss-loader',
                            options: styles.getPostCssConfig( {
                                themeImporter: {
                                    themePath: require.resolve( '@ckeditor/ckeditor5-theme-lark' )
                                },
                                minify: true
                            } )
                        },
                    ]
                }
            ]
        },
    
        // Useful for debugging.
        devtool: 'source-map'
    };
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   MTilsted    7 年前

    结果我只需要加上

    window.ClassicEditor=ClassicEditor;
    

    在app.js文件的底部

    推荐文章