简体   繁体   English

babel-register无法转换反应

[英]babel-register is unable to transform react

I am trying to use react in node js application. 我正在尝试在node js应用程序中使用react。 One way I found was using babel-register, which supposedly transform react jsx files. 我发现的一种方法是使用babel-register,据称它可以转换react jsx文件。

I put code in node index.js. 我将代码放在节点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}`);
});

Then I put react code in public/index.js 然后我将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')
);

Then I get this error. 然后我得到这个错误。 Uncaught SyntaxError: Unexpected token < 未捕获到的SyntaxError:意外令牌<

I believe I installed everything I need to use babel-register... 我相信我已经安装了使用babel-register所需的一切...

"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",

Do I have to use webpack rather than babel-register or I am doing it wrong ? 我必须使用webpack而不是babel-register还是做错了?

I think babel register just makes it so you can 'require' a file and have babel transpile it. 我认为babel寄存器就是这样做的,因此您可以“需要”一个文件并让babel转译它。 You are merely telling express to serve the file "as is" with express.static. 您只是在告诉express用express.static“按原样”提供文件。

You will want to either use static to serve a file which has already been processed by babel, or require it. 您可能需要使用static来提供已由babel处理过的文件,或者需要它。 You may want to look into some of the react express view libraries. 您可能需要研究一些react express视图库。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM