摆脱 node-jsx

IT技术 node.js reactjs
2021-05-15 20:42:30

在我的 NodeJS 应用程序的路由器中,我想呈现一个 React 应用程序。由于它没有浏览器化(并且有react),它unexpected token <在构建时返回错误。我发现如果我require("node-jsx").install()没有返回这个错误。node-jsx已弃用。有什么方法可以在不需要它的情况下构建项目吗?

var JSX = require('node-jsx').install(),//as we don't reactify it while building
    React = require('react'),
    Board = React.createFactory(require('../components/board')),
    DataStore = require('../store/store');


    var router = require('express').Router();

    router.get('/', function(req, res) {
        var initialState = {'users': DataStore.getUsers()};
        var markup = React.renderToString(
            Board(initialState)
        );
        res.render('board', {
            markup: markup,
            state: JSON.stringify(initialState),
            layout: 'boardLayout'
        });
    });

    module.exports = router;
2个回答

node-jsx 已被弃用,取而代之的是babel取而代之的是require('node-jsx').install();,您现在可以使用require('babel-register');.

由于上面的 babel 6 答案将不起作用。请改用 babel-register。

建议您不要在生产中使用此设置。对于生产,您应该转堆所有文件并在节点 server.js 行中使用某些内容。