服务器端渲染的时候node无法处理标签怎么办?

#1

在node端渲染页面的时候,如果用renderToStaticMarkup()会报错,node无法识别’<'是干嘛用的。

#2

你需要babel,准确说babel + babel-preset-react来解析jsx语法

#3

可以参考下轻量级的SSR模板,可以加快你理解

#4

这个我已经在用了,不过只是在前端代码中使用他来翻译一下,服务器端并没有使用,我需要在服务器端引入吗?

#5

需要,因为你服务端也把client端的代码import/require进来了

#6

服务器端咋引用啊?我设置.babelrc文件了,没效果呀

#7

有两种方法,你可以在服务端入口直接引入"babel-core/register",比如这样:https://github.com/wssgcg1213/koa2-react-isomorphic-boilerplate/blob/master/bin/development.js#L5

另外一种方式是webpack打包render的middleware,babel工作交给webpack打包过程中去做,express或koa引入这种打包好的代码作为render middleware。就如我上面发的模板所做的那样。

我个人比较倾向第二种。原因主要是可以避开开发、生产环境的不一致导致一些不可预测的奇怪bug。

#8

我看了一下你的代码,webpack(webpack_config).run((err, stats) => {}这种方式吗?为啥我用这个了,也不行啊