NodeJS 如何用Babel在vanilla JS中执行JSX文件

68de4m5k  于 2022-11-29  发布在  Node.js
关注(0)|答案(1)|浏览(156)

我想用vanilla JS导入一个JSX文件并执行它,这样我就得到了一个实际的Component对象。我试着用Babel来做这个,但是它只给我一个字符串形式的代码,它不会执行它。我不想进行eval,因为它是非标准的,相对的dir字符串没有改变。
我正在尝试

const babel = require('@babel/core')

  babel.transformFileAsync('./src/Page.jsx', {
    plugins: [
      '@babel/plugin-transform-react-jsx',
      '@babel/plugin-transform-modules-commonjs'
    ]
  })
    .then((parsed) => {
      const page = React.createElement(eval(parsed.code), {
        classes: db.classes
      })
    })

然而,我在JSX文件中的import './styles/Page.css'失败了,因为相对路径在它被求值的文件中不正确。

plupiseo

plupiseo1#

你添加了这些css和样式包吗?

// npm
npm install --save-dev css-loader style-loader
// yarn
yarn add --dev css-loader style-loader

您可以阅读更多关于如何使用Webpack和Babel与Vanila JS here

相关问题