2016-03-17 3 views
3

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

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

Как сказано в их документации here, я добавил пакет 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 таким образом?

Спасибо!

ответ

9

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

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

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

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

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

Смежные вопросы