Установка CKEditor с npm

Я пытаюсь установить CKEditor в свой проект. Я использую Laravel.

Я знаю, что могу загружать файлы, но мне нравится затруднять жизнь, и я решил, что хочу установить CKEditor в качестве зависимости npm.

Как указано в их документации здесь , я добавил пакет в package.json, вот так:

"dependencies": { "jquery": "^1.11.1", "bootstrap-sass": "^3.0.0", "elixir-coffeeify": "^1.0.3", "laravel-elixir": "^4.0.0", "font-awesome": "^4.5.0", "ckeditor": "^4.5.7" } 

Теперь, я думаю, я должен потребовать его в своем app.coffee, и поэтому я попробовал:

 window.$ = window.jQuery = require('jquery') require('bootstrap-sass') require('ckeditor') 

Это, безусловно, добавляет скрипт ckeditor.js к моему app.js. Однако ckeditor, похоже, имеет свои собственные зависимости, такие как config.js или editor.css, и, конечно, сервер отвечает на запросы 404.

Как я могу установить CKeditor таким образом?

Спасибо!

Вероятно, существует проблема с путями к этим зависимостям CKEditor. Я не уверен, что вы используете браузер или что-то другое, но, например, в браузере using require('ckeditor') приведет к тому, что ckeditor.js (возможно, с другими файлами js) загрузит файл из того же app.coffee файл app.coffee в то время как зависимости CKEditor находятся в node_modules/ckeditor/ dir.

Чтобы сообщить CKEditor, в какой каталог он должен загружать свою зависимость, вы можете использовать CKEDITOR_BASEPATH :

 window.CKEDITOR_BASEPATH = 'node_modules/ckeditor/' require('ckeditor') 

Вы можете увидеть, есть ли проблема с загрузкой этих файлов с помощью вкладки « Сеть » в консоли Dev (например, F12 в Chrome).

Обратите внимание, что это не идеальное решение для производственной среды, потому что вам нужна папка node_modules на вашем сервере. Вероятно, вам следует рассмотреть возможность перемещения только этих зависимостей в другую папку во время процесса сборки / выпуска (и использовать CKEDITOR_BASEPATH, как и раньше, с помощью пути к этой производственной папке).