Browserify требует редактора imperavi

Мне нужен код редактора imperavi (npm package) в мою сборку браузера. Но я получаю непредсказуемую ошибку.

Это код элемента реакции

React = require('react')
ReactBootstrap = require('react-bootstrap')

Input = ReactBootstrap.Input
Button = ReactBootstrap.Button

require('bower-redactor/redactor/redactor-plugins/table.js')
require('bower-redactor/redactor/redactor.js')
require('bower-redactor/redactor/langs/ru.js')

module.exports = React.createClass
  componentDidMount: ->
    jQuery('textarea.redactor').redactor
      lang: 'ru'
      plugins: ['table']
  render: ->
    <form>
      ...
      <Input type='textarea' ref='content' className='redactor' defaultValue={@props.content} />
      ...
    </form>

Все идет хорошо, пока я не require('bower-redactor/redactor/redactor-plugins/table.js') и не добавлю plugins: ['table'] в код. Я получаю сообщение об ошибке: ReferenceError: RedactorPlugins is not defined в redactor.js#L1430< /а>

Но они определены в table.js, что требуется перед redactor.js Почему я получаю эту ошибку. Как этого избежать и начать успешно использовать redactor.js?

Я пробовал много вещей: browserify-shim package, создание global.RedactorPlugins = {} и так далее, но безуспешно.


person asiniy    schedule 16.09.2015    source источник


Ответы (1)


Вам нужно включить код в свой пакет. Он будет глобальным, поэтому вы просто ссылаетесь на него. Требовать не будет работать. С gulp это будет выглядеть примерно так;

    var source = {
        libjs: ['bower-redactor/redactor/redactor-plugins/table.js', 'bower-redactor/redactor/redactor.js', 'bower-redactor/redactor/langs/ru.js']
    };

    gulp.task('libjs', function () {
        gulp.src(source.libjs)
            .pipe(concat('lib.min.js'))
            .pipe(gulp.dest('./ui-dist'))
    });
person J. Mark Stevens    schedule 16.09.2015