javascript - Browserify 需要 imperavi 编辑器

标签 javascript coffeescript reactjs browserify redactor

我想要imperavi's redactor的代码( npm package ) 到我的 browserify 版本。但我遇到了不可预测的错误。

这是react元素的代码

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 at redactor.js#L1430

但它们的定义是 table.js ,这是 redactor.js 之前必需的 为什么我会收到此错误。我怎样才能避免它并开始成功使用 redactor.js?

我尝试了很多东西:browserify-shim package ,制作 global.RedactorPlugins = {} 等等,但没有成功。

最佳答案

您需要将代码包含在您的包中。它将是全局的,因此您只需引用它即可。要求不行。使用 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'))
    });

关于javascript - Browserify 需要 imperavi 编辑器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32608050/

相关文章:

javascript - 为什么 CoffeeScript 将类定义包装在闭包中?

javascript - 幻灯片过渡在第一张幻灯片后停止工作

javascript - Promise.all() 方法未解析为值

javascript - 获取GET请求的参数

javascript - 如何使用 Jquery 更改链接的 href 属性

javascript - 为什么单击一个元素触发事件会阻止另一个元素工作?

javascript - AngularJS:如何仅在设置 $scope.var 后才在 View 中设置 $scope.var?

node.js - Elastic Transcoder AWS,如何增加缩略图大小?

javascript - 有没有办法在 firebase 中减少请求?

javascript - 如何从 React 元素(更改时)获取 "key"属性?