我想用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'
失败了,因为相对路径在它被求值的文件中不正确。
1条答案
按热度按时间plupiseo1#
你添加了这些css和样式包吗?
您可以阅读更多关于如何使用Webpack和Babel与Vanila JS here。