【发布时间】:2016-03-06 04:24:21
【问题描述】:
似乎在我对react-server-example (https://github.com/mhart/react-server-example) 的改编中我似乎无法使用 JSX。从那以后我做了一些改变(比如用 Webpack 替换 Browserify 等等)但是,在广泛环顾并安装 babel-present-react 之后,我似乎无法弄清楚为了运行应用程序而缺少什么。
package.json
{
"name": "react-server-example",
"version": "1.1.5",
...
"dependencies": {
"babel-preset-react": "^6.5.0",
"react": "^0.14.7",
"react-dom": "^0.14.7"
},
"devDependencies": {
"babel-cli": "^6.6.5",
"babelify": "^7.2.0",
"webpack": "^1.12.14"
}
}
webpack.config.js
module.exports = {
entry: "./entry.js",
output: {
filename: "bundle.js"
},
module: {
loaders: [
{ test: /\.css$/, loader: "style!css" },
{ test: /\.js$/, loader: "jsx-loader" },
{
test: /\.js$/,
exclude: /node_modules/,
loader: "babel",
query:
{
presets:['react']
}
}
]
}
};
.babelrc
{
"presets": ["es2015", "stage-0", "react"]
}
【问题讨论】:
-
你可以查看express-react-views,它使用 Babel 在服务器上呈现 React 视图,就像任何其他模板引擎,例如 Jade。
-
你能否分享一下你是如何配置 babel 的,以及你是如何使用 babel 来处理文件的?
-
所以我添加了一个 .babelrc 文件,但我没有对 Babel 做任何其他事情......
-
您可能缺少的是 Babel 的使用,因为 Node 本身不会使用 Babel。您必须在执行文件之前将文件从 JSX 编译为 ES/JS (
babel server.jsx -o server.js; node server.js),或者使用 Babel 自己的命令将这两个步骤合二为一 (babel-node server.js)。 -
为此,您还必须安装
babel-preset-es2015。或者,从任何"presets"集合中删除"es2015"(.babelrc?)。
标签: javascript node.js reactjs npm babeljs