我想在我的browserify版本中使用imperavi's redactor(npm package)代码。但是我收到了一个无法预测的错误。
这是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
在redactor.js#L1430但是它们是在table.js处定义的,在
redactor.js
之前是必需的。为什么会出现此错误。如何避免这种情况并开始成功使用redactor.js?我尝试了很多事情:browserify-shim package,制作
global.RedactorPlugins = {}
等,但是没有成功。 最佳答案
您需要在捆绑包中包含代码。这将是全球性的,因此您只需参考它即可。需要将不起作用。大吃一惊,看起来像这样。
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'))
});