rails反应browserify TypeError:对象函数没有方法' extends'

时间:2015-11-10 18:44:53

标签: ruby-on-rails reactjs flux browserify-rails

我尝试使用rails,react和browserify创建一个Web应用程序。我一直关注this tutorial,因为我想要服务器端呈现,我已经使用this repo作为起点,并遵循README文件中提到的教程。

虽然我认为我已按照上述文章的建议做了一些事情,但我无法弄清楚如何解决以下错误:

TypeError: Object function ( w ) { if ( !w.document ) { throw new Error( "jQuery requires a window with a document" ); } return factory( w ); } has no method 'extend'

如果要重现错误,请克隆my repo(即opensource及其在github上),然后转到功能分支auth,安装gems和npm软件包并解除服务器:< / p>

$ cd path_to_project $ git checkout -b feature/auth $ bundle $ npm install $ bundle exec rails server

我真的很感激任何帮助,因为我现在被困在这里。另外,我有新的反应,所以我几乎不知道在哪里寻找问题。

编辑:根据评论中的请求,我已删除了堆栈跟踪,以使问题更具可读性。如果您需要任何额外信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

我碰巧使用j-toker CommonJS包,内部使用onClick() public void onClick(View view) API。 jQuery与服务器端呈现不兼容,因为它需要jQuery元素来加载自身,它只存在于浏览器中,而不存在于服务器中。该解决方案尚未到手,但作为J-Toker's author has indicated,他即将发布一个涵盖服务器端渲染案例的新库。

因此,对于遇到类似错误的任何人,请检查您是使用ajax还是依赖于document的任何其他包,或者需要拥有jquery DOM元素,以及尝试使用服务器端渲染安全替代方案。