0

我正在尝试使用 rails、react 和 browserify 制作一个 Web 应用程序。我一直在关注本教程,因为我想要服务器端渲染,所以我使用这个 repo作为起点,并按照自述文件中提到的教程进行操作。

尽管我认为我已经按照上述文章的建议进行了操作,但我无法弄清楚如何解决以下错误:

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

如果你想重现错误,克隆我的 repo,它是开源的,它在 github 上,然后转到 feature 分支auth,安装 gems 和 npm 包并提升服务器:

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

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

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

4

1 回答 1

0

我碰巧在使用j-toker内部使用APIjQuery的CommonJS 包。ajaxjQuery 与服务器端渲染不兼容,因为它需要一个document元素来加载自身,并且它只存在于浏览器中,而不存在于服务器中。解决方案还没有出现,但正如J-Toker 的作者所指出的那样,他即将发布一个涵盖服务器端渲染情况的新库。

因此,对于遇到类似错误的任何人,请检查您是否正在使用jquery或任何其他依赖于DOM 元素jquery或需要具有documentDOM 元素的包,并尝试使用服务器端渲染安全的替代方案。

于 2015-11-12T04:27:24.677 回答