2 回答

TA貢獻(xiàn)1853條經(jīng)驗 獲得超6個贊
對于(我的)未來參考,這是一個完整的工作示例。
你可以將下面的代碼放入 index.html 并在網(wǎng)絡(luò)瀏覽器中運行它,你將擁有一個使用 JSX 的 React 應(yīng)用程序。
來源: https: //codesandbox.io/s/dikoh?file =/index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Static Template</title>
</head>
<body>
<div id="main"></div>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<script type="text/babel" data-presets="react" data-type="module">
import {
ChakraProvider,
Box,
Text
} from "https://cdn.skypack.dev/@chakra-ui/react";
import React, { useRef } from "https://cdn.skypack.dev/react";
import ReactDOM from "https://cdn.skypack.dev/react-dom";
const MyText = ({ color, ...props }) => {
return <Text fontWeight="bold" as="span" {...props} />;
};
function Foo() {
return (
<div>
Foo
</div>
);
}
function App() {
return (
<Box>
Hello <MyText>Skypack</MyText>
<Foo/>
</Box>
);
}
ReactDOM.render(
<ChakraProvider>
<App />
</ChakraProvider>,
document.getElementById("main")
);
</script>
</body>
</html>

TA貢獻(xiàn)1875條經(jīng)驗 獲得超3個贊
Amareis 在 babel 的 github 頁面上回答了我的問題:https://github.com/babel/babel/discussions/12059
問題是 babel 不會轉(zhuǎn)譯通過 ES 模塊導(dǎo)入的模塊,它們必須明確包含為腳本,并將“type”設(shè)置為“text/babel”。所以通過 index.js 腳本中的 ES 模塊導(dǎo)入的 JSX 文件是在 index.js 被 babel 轉(zhuǎn)譯后導(dǎo)入的,而不是它自己轉(zhuǎn)譯。
還得到了一個建議,為了開發(fā)目的,使用 service worker 獲取并執(zhí)行我的腳本。babel-standalone 在獲取后轉(zhuǎn)換它們
添加回答
舉報