我正在使用 Babel-Standalone 在 React 应用程序中使用 JSX,而不使用 NPM。Babel 显然将“import”语句翻译成“require”语句;导入 'require.js' 和其他依赖项以使这项工作产生更多错误。
当然,必须有一种简单的方法来在客户端 JSX 的上下文中执行导入/导出。请告知(此处不寻求 Node/NPM/Webpack 解决方案;寻求适当库的 CDN 和 import 语句的重写等)。
<!doctype html>
<html lang="en-us">
<head>
<title>React JSX Babel-Standalone Import/Export Problem</title>
<meta charset="utf-8">
</head>
<body>
<div id="root"></div>
<script src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<script type="text/babel">
// See MyExport.js text below this SCRIPT
// Goal: to employ <MyExport /> in the return of App.
// import MyExport from "./MyExport";
const App = () => {
return (
<div>Hello</div>
);
};
ReactDOM.render(<App />, document.querySelector("#root")); …Run Code Online (Sandbox Code Playgroud) 我的要求是我必须通过加载本地文件 URL 来使用我的 react SPA,如下所示
file:///C:/react/build/index.html
Run Code Online (Sandbox Code Playgroud)
不使用任何 HTTP 服务器。
在这种情况下,它与 HTTP 服务器正常工作,但在本地文件 URL 访问的情况下,只有初始组件正常工作,但路由不工作。
它在 chrome 中给出了以下类型的错误 -
未捕获的 DOMException:无法在“History”上执行“pushState”:无法在来源为“null”且 URL 为“file”的文档中创建 URL 为“file:///C:/react/build/Aboutus”的历史状态对象:///C:/react/build/index.html'。
在 Firefox 中——
SecurityError:操作不安全。1.d30e17d6.chunk.js:1 push/< createBrowserHistory.js:153 confirmTransitionTo createTransitionManager.js:33 push createBrowserHistory.js:146 e/i.handleClick Link.js:99 p/< react-dom.production.min。 js:49 p react-dom.production.min.js:45 p/< react-dom.production.min.js:73 p react-dom.production.min.js:72 S react-dom.production.min。 js:168 E react-dom.production.min.js:158 j react-dom.production.min.js:232 Tn react-dom.production.min.js:1712 Za react-dom.production.min.js: 5451 Dt react-dom.production.min.js:660 Sn react-dom.production.min.js:1754 Fa react-dom.production.min.js:5479 Cn react-dom.production.min.js:1731 Cn自托管:1018:17
请给我一些解决方案或给我一些示例代码。并且请不要建议使用任何 HTTP 服务器方法,因为在这种情况下,我必须在不使用任何 HTTP 服务器的情况下执行此操作。
我在 react-router v4 中使用 create-react-app 方法