babel寄存器无法转换react
babel-register is unable to transform react
我正在尝试在node-js应用程序中使用react。我发现的一种方法是使用babel寄存器,据说它可以转换react jsx文件。
我把代码放在节点index.js.中
require('babel-register')({
ignore:'node_modules',
presets: ["es2015",'react', "stage-0"],
extensions: [".es6", ".es", ".jsx", ".js"]
});
app.use('/static', express.static('public'));
app.get('/',(req,res)=>{
res.sendFile(__dirname+'/public/index.html');
});
const server = app.listen(9000, () => {
let port = server.address().port;
winston.info(`Server running at http://localhost:${port}`);
});
然后我把react代码放在public/index.js 中
var React = require('react');
var ReactDom = require('react-dom');
class TodoApp extends React.Component {
render() {
return(
<div>
<h1>Heslssddddlo</h1>
</div>
)}
}
ReactDom.render(
<div>
<TodoApp></TodoApp>
</div>
, document.getElementById('app')
);
然后我得到了这个错误未捕获语法错误:意外的标记<
我相信我安装了所有我需要使用babel寄存器的东西。。。
"devDependencies": {
"babel-cli": "^6.11.4",
"babel-core": "^6.11.4",
"babel-loader": "^6.2.4",
"babel-preset-es2015": "^6.9.0",
"babel-preset-react": "^6.11.1",
"babel-preset-stage-0": "^6.5.0",
"babel-register": "^6.11.6",
我必须使用webpack而不是babel寄存器吗?或者我做错了?
我认为babel register只是为了让你"需要"一个文件并让babel对其进行transfile。你只是告诉express用express.static."按原样"提供文件
您可能想要使用static来提供已经由babel处理过的文件,或者需要它。您可能想要查看一些react express视图库。
相关文章:
- 如何处理 React / Flux 组件中的状态转换
- 有没有一个工具可以将React Elements的javascript代码转换为JSX
- 在 React 的 html 输入中在美分和美元之间进行转换
- 将 React Component 值转换为 vanilla Javascript
- 将常规 HTML/Javascript 转换为 React
- Babel React 转换:属性值预期的字符串类型,但得到空
- React js getInitialState 在转换为 es6 后不起作用
- React HTMLtoJSX 不转换大括号
- React-router v2 不会使用 context.router.rereplace 进行转换
- React-Native:将图像网址转换为base64字符串
- Karma+Mocha+React无法将Symbol值转换为字符串
- 如何将react JSX文件转换为简单的JavaScript文件[离线转换]
- 如何在React Native中使用Navigator对正在转换为的组件调用方法
- 将React.element转换为JSX字符串
- 使用Gulp将jsx转换为js时出现React语法错误
- 这个问题的原因是什么;无法转换org.json.JSONArray类型的参数“”;在react原生android中
- 使用JQuery插件来转换React组件中的DOM
- 如何在React中进行两天的数据绑定,当输入值A更新时B更新,反之亦然,同时保留以前转换的历史记录
- 将单个React组件转换成JS小部件
- babel寄存器无法转换react